Я практикую рекурсивные методы, и один из трех, над которыми я работаю, пытается использовать заглавную строку целиком и добавлять пробел между каждым символом. Ниже мой код:
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 !