【发布时间】:2020-05-17 16:56:14
【问题描述】:
我正在练习递归方法,我正在研究的三种方法中的一种尝试将整个字符串大写并在每个字符之间添加一个空格。以下是我的代码:
public static String toUpper(String str) {
char ch;
if(str.length() == 0) {
return "";
}
ch = str.charAt(0);
if(Character.isLowerCase(ch)){
return Character.toUpperCase(ch) + toUpper(str.substring(1));
}
String newString = ch + toUpper(str.substring(1));
/*
* This is where my issue is.
* I assumed using the replace method would work just as it does on any other string;
* however I am getting incorrect output every time.
*/
return newString.replace("", " ");
}
但是,除了前两个字符之间之外,它不仅替换为一个空格,而且我一生都无法弄清楚为什么。我已经在另一种非递归方法中测试了这种替换的使用,它的工作方式与我预期的一样。如果您能帮助我理解这一点,将不胜感激。
我的输出如下所示:
H I T H E R E !
我想要这个:
H I T H E R E !
【问题讨论】:
标签: java string recursion replace character