ここで同様の質問があると言って始めるべきですが、私が行っている課題ではループを使用できず、これらの質問に対するすべての回答でループを使用しています。そのため、Java 6 と再帰を使用して、特定の文字列のすべての部分文字列を生成します。たとえば、指定された String word = "Ralph"; 出力をこのようにフォーマットする必要があります。
Ralph
Ralp
Ral
Ra
R
alph
alp
al
a
lph
lp
l
ph
h
これが私の生成方法です
//written by Justin Tew<BR>
public static void generate(String word)
{
//base case... wtf is the base case here?
//idk bout this
if (word.length() == 1)
{
System.out.println(word);
return;
}
//recursive case
if (word.length() != 0)
{
System.out.println(word);
generate(word.substring(0, word.length()-1)); //gets the first 5 substrings
}
出力:
Ralph
Ralp
Ral
ra
r
私の考えでは、この呼び出しgenerate(word.substring(1, word.length()-1));
は次の 5 を取得する必要がありますが、非常に奇妙な出力は得られません...
何か案は?