特定の文字列「Sluggo」に対して次の処理を行う再帰メソッドを使用してプログラムを作成しようとしています。
Please enter a string: Sluggo
Sluggo
Slugg
Slug
Slu
Sl
S
luggo
lugg
lug
lu
l
uggo
ugg
ug
u
ggo
gg
g
go
g
o
これはこれまでの私のプログラムです:
import java.util.Scanner;
public class RecursiveDescentParser {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Please enter a string: ");
String s = input.next();
chopBack(s.substring(0));
chopBack(s.substring(1));
chopBack(s.substring(2));
chopBack(s.substring(3));
chopBack(s.substring(4));
chopBack(s.substring(5));
}//end of main
public static String chopBack(String str)
{
if (str.length() == 0)
return "";
else
System.out.println(str.substring(0, str.length()));
return chopBack(str.substring(0, str.length() - 1 ));
}
}
二重再帰メソッドに似たものを書く必要があるので、それが正しくないことはわかっています。この時点からどこに行けばいいのか疑問に思っていますか?文字列の先頭から char を削除するメソッドも作成しました。この時点で、この 2 つを接続する方法がよくわかりません (笑)。