我想將字符串拆分爲三部分,並向後打印每個部分。所以當用戶輸入「HelloWorld」時,它應該打印「dlroWolleH」。我不知道我在哪裏錯了,它翻轉像一對。將字符串拆分爲三部分,並將遞歸應用於翻轉:java
import java.util.*;
public class recursion
{
public static void main(String args[])
{
Scanner scanner = new Scanner (System.in);
System.out.print("Enter a string: ");
String str = sc.nextLine();
System.out.print(revRec3(str));
}
public static String revRec3(String str)
{
if ((str.length() == 1)|| (str.length()==0 || str.length()==2))
{
return str;
}
String left = str.substring(0, (str.length()/3)),
middle = str.substring((str.length()/3) ,(str.length()-left.length())),
right = str.substring((str.length()-middle.length()),str.length());
String revLeft = revRec3(left);
String revMiddle = revRec3(middle);
String revRight = revRec3(right);
return revRight + revMiddle + revLeft;
}
}
[什麼是調試器以及它如何幫助我診斷問題? ](https://stackoverflow.com/q/25385173/5221149) – Andreas
打印你的分割結果,你會發現你的錯誤:'HelloWorld'被分割成'Hel','loWo','orld'。哎呀! 「世界」中的「o」包含兩次。 – Andreas
另外,如果輸入長度爲2個字符*(並且它將在遞歸之一中)*,則按原樣返回它,而不反轉它。哎呀! – Andreas