我应该首先说这里提出了类似的问题,但是对于我正在进行的作业,我不能使用任何循环,并且这些问题的所有答案都使用循环。所以使用 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 但它不会得到非常奇怪的输出......
有任何想法吗?