gpt4 book ai didi

java - 在 Java 中使用递归将字符串转换为反向字符串

转载 作者:行者123 更新时间:2023-11-30 01:44:52 24 4
gpt4 key购买 nike

今天我试图将字符串转换为反向字符串例如(Cat Is Running 变成 Running Is Cat) 逐字而不是字符

public class ReverseString_ {
public static void reverse(String str) {
String[] a = str.split(" ");
for (int i = a.length - 1; i >= 0; i--) {
System.out.println(a[i] + " ");
}
}

public static void main(String[] args) {
reverse("Cat Is Running");
}
}

显示以下输出:

Running Is Cat BUILD SUCCESSFUL (total time: 0 seconds)

我试图将字符串转换为与上面相同的反向字符串,但通过递归方法,但它似乎太困惑了。并显示更多错误。有人可以帮助我理解它吗?非常感谢

public static String reverse_recursion(String str) {
if (str == null)
return null;
else {
String Arry[] = str.split(" ");
int n = Arry.length - 1;
System.out.println(Arry[n] + "");
return reverse_recursion(Arry[n - 1]);
}
}

public static void main(String[] args) {
reverse_recursion("Cat Is Running");
}

此代码显示以下输出:

Running
Is
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1

这段代码不打印(0)索引为什么?有人可以帮我解决这个错误吗

最佳答案

这个解决方案可能会有所帮助。注释非常详细地解释了代码。

public static String reverse_recursion(String str) {
String[] arry = str.split(" ", 2); //Split into a maximum of 2 Strings

if (arry.length > 1) { //If there is more than 1 word in arry
//Return the reverse of the rest of the str (arry[1])
//and concatenate together with the first word (arry[0])
return reverse_recursion(arry[1]) + " " + arry[0];
}

return arry[0]; //If less than or equal to 1 word, just return that word
}

关于java - 在 Java 中使用递归将字符串转换为反向字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58491998/

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