gpt4 book ai didi

java - 使用递归替换字符串中某个索引处的字符

转载 作者:行者123 更新时间:2023-11-30 07:10:35 25 4
gpt4 key购买 nike

您好,我正在尝试创建一种递归地从单词中删除空格的方法。到目前为止我已经这样做了,但我真的不确定为什么它不起作用。

public static String compact (String line)
{

for (int x = 0 ; x < line.length () ; x++)
{
if (line.charAt (x) == ' ')
{
String newLine = line.substring (0, x) + line.substring (x);
return compact (newLine);
}
else
break;
}
return line;
}

这只是返回原始字符串而不删除任何空格。谁能告诉我我做错了什么,谢谢。

最佳答案

只需删除

else break;  

部分,因为如果你的字符串的第一个字符不是空格,循环就会终止

也替换

String newLine = line.substring (0, x) + line.substring (x);

String newLine = line.substring (0, x) + line.substring (x + 1);

因为您实际上并没有删除空格,而是一遍又一遍地复制整个字符串。这就是您收到 StackOverflowError 的原因。


方法应该是这样的:

public static String compact(String line) {
for (int x = 0; x < line.length(); x++) {
if (line.charAt(x) == ' ') {
String newLine = line.substring (0, x) + line.substring (x+1);
return compact(newLine);
}
}
return line;
}

关于java - 使用递归替换字符串中某个索引处的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071196/

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