我正在研究一种可以向后打印句子单词的方法。我非常接近解决方案,但遇到了一个小障碍。
这是我的代码:
public static String reverseString(String str) {
if (str.equals(""))
return "";
else {
int i = str.length() - 1;
while (!Character.isWhitespace(str.charAt(i))) {
if (i - 1 < 0)
break;
i--;
}
return str.substring(i,str.length()) + reverseString(str.substring(0,i));
}
}
现在的问题是我的测试的输出:
String test = "This is a test.";
System.out.println(reverseString(test));
正在给我这个:
test. a isThis
现在,当我尝试增加返回的子字符串的索引并手动添加空格时,它会切断“This”中的“T”。也就是说,如果我决定返回如下:
return str.substring(i+1,str.length()) + " " + reverseString(str.substring(0,i));
然后我就回来了
test. a is his
有人对我的总体实现有任何建议或指示吗?
最佳答案
您可以将返回语句更改为:
return str.substring(i, str.length()).trim() + " " + reverseString(str.substring(0, i));
关于java - 递归打印句子中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40578417/