gpt4 book ai didi

java - Java中将所有字符大写并在每个字符之间添加空格的递归方法

转载 作者:行者123 更新时间:2023-11-30 01:40:58 26 4
gpt4 key购买 nike

我正在练习递归方法,我正在研究的三个递归方法之一尝试将整个字符串大写并在每个字符之间添加空格。下面是我的代码:

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 !

最佳答案

您不应该替换字符,而是首先测试您是否至少有一个字符(否则返回空字符串);如果至少有一个字符,请将第一个字符大写,然后将其与递归调用方法的结果连接起来。就像,

public static String toUpper(String str) {
if (str.length() < 1) {
return "";
}
return Character.toUpperCase(str.charAt(0)) + toUpper(str.substring(1));
}

在每个字符之间添加空格

return Character.toUpperCase(str.charAt(0)) 
+ " " + toUpper(str.substring(1));

关于java - Java中将所有字符大写并在每个字符之间添加空格的递归方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60013758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com