【发布时间】:2016-10-18 14:03:29
【问题描述】:
我试图找到一个字符串中的所有子字符串,我编写了以下代码,但我有一些不需要的输出,如下所示: 该方法首先打印子字符串(0,1),然后它通过将b递增1来调用自身并继续这样,当b>字符串的长度时,它将预先增加a,并将a + 1传递给b,然后继续这个,直到a+1==字符串长度的最后一个子字符串,当我的递归程序应该终止时。
public static void main(String[] args) {
recsub("java",0,1);
}
public static void recsub(String str,int a,int b){
if(b>str.length()) {
System.out.println();
recsub(str,++a,a+1);
}
else {
System.out.print(str.substring(a,b)+" ");
}
if((a+1)==str.length()) {
}
else {
recsub(str,a,b+1);
}
这段代码的输出是:
j ja jav java
a av ava
v va
a
a
v va
a
a
或者我可以通过这个方法突破并返回到main,每当程序进入那个if(if(a+1)==...),就像打破一个循环一样?
【问题讨论】: