文字列を3つの部分に分割し、各部分を後方に印刷しようとしています。したがって、ユーザーが "HelloWorld"と入力すると、 "dlroWolleH"が表示されます。私はどこが間違っているのかわからない、それはペアのように反転する。3つの部分に文字列を分割し、フリップに再帰を適用します。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」は2回含まれています。 – Andreas
また、入力が2文字*の長さで、再帰の1つになる*場合は、そのまま戻します。おっとっと!!! – Andreas