一个递归的Java程序来查找字符串中的所有子字符串

马哈茂德·胡森(Mahamad Husen)

我试图找到一个字符串中的所有子字符串,我编写了以下代码,但是我有一些不需要的输出,如下所示:该方法首先打印子字符串(0,1),然后通过用b递增b来调用自身1并继续这样,当b> string的长度时,它将预先增加a,并将a + 1传递给b,并继续这样,直到最后一个子串,其中a + 1 == string的长度,当我递归时程序应终止。

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 

还是只要程序输入if(if(a + 1)== ...),就可以像打破循环那样,突破这种方法并返回到主程序吗?

修剪

如果您合理地构建了逻辑,则不必中断这样的例程,尽管根据需要返回非常合法的(并且通常很有用)

错误在于您的第二次递归:这应该以子字符串大小b足够短为条件

我已经自由地替换了一个字母的变量名(a-> start_pos,b-> size),更改了测试字符串(“ java”有两个a,因此更难追踪),并清理了空白空间。

public class substr {
  public static void main(String[] args) {
    recsub("abcd", 0, 1);
  }

  public static void recsub(String str, int start_pos, int size){
    if (size > str.length()) {
      // Print newline; restart with next character
      System.out.println();
      recsub(str, ++start_pos, start_pos+1);
    }
    else {
      // Print one substring
      System.out.print(str.substring(start_pos, size)+" ");
      if (start_pos+1 < str.length()) {
        recsub(str, start_pos, size+1);
      }
    }
  }
}

输出:

a ab abc abcd 
b bc bcd 
c cd 
d 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找字符串中的所有子字符串计数

来自分类Dev

我有一个程序来查找字符串中字母的数量,但是它不完整,您能完成它吗python

来自分类Dev

如何使用AWK查找字符串中的第一个数字并打印所有内容

来自分类Dev

查找字符串中包含子字符串的所有行,并在ms-excel中返回所有此类行的第一个单元格

来自分类Dev

为原始字符串中的子字符串查找字符串的第一个索引 l?

来自分类Dev

如何在Java中查找字符串中的最后一个单词?

来自分类Dev

如何在Java中查找字符串中的最后一个单词?

来自分类Dev

在具有多个节的文件的一个节中查找字符串

来自分类Dev

查找字符串中所有出现的分割子字符串

来自分类Dev

查找字符串中所有用点分隔的子字符串?

来自分类Dev

查找字符串中所有出现的子字符串

来自分类Dev

查找字符串中的所有匹配项

来自分类Dev

查找字符串中模式的所有索引?

来自分类Dev

Java:在字符串中查找字符串

来自分类Dev

查找字符串中包含的所有子字符串的最快方法是什么?

来自分类Dev

查找字符串中两个单独字符之间的所有逗号

来自分类Dev

在字符串中递归查找字符

来自分类Dev

使用递归查找字符串中的字符

来自分类Dev

查找字符串中字符的最后一个索引

来自分类Dev

查找字符串中的最后一个特定字符类型

来自分类Dev

查找字符串中的第一个非重复字符

来自分类Dev

使用递归将一个子字符串的所有出现替换为另一个子字符串

来自分类Dev

使用递归将一个子字符串的所有出现替换为另一个子字符串

来自分类Dev

在字符串数组中查找包含子字符串的所有字符串

来自分类Dev

在字符串数组中查找包含子字符串的所有字符串

来自分类Dev

从另一个列表中的字符串开始的列表中查找字符串

来自分类Dev

查找字符串中的所有字符串

来自分类Dev

在字符串中查找字符串的所有实例

来自分类Dev

使用php查找字符串中的所有子域

Related 相关文章

  1. 1

    查找字符串中的所有子字符串计数

  2. 2

    我有一个程序来查找字符串中字母的数量,但是它不完整,您能完成它吗python

  3. 3

    如何使用AWK查找字符串中的第一个数字并打印所有内容

  4. 4

    查找字符串中包含子字符串的所有行,并在ms-excel中返回所有此类行的第一个单元格

  5. 5

    为原始字符串中的子字符串查找字符串的第一个索引 l?

  6. 6

    如何在Java中查找字符串中的最后一个单词?

  7. 7

    如何在Java中查找字符串中的最后一个单词?

  8. 8

    在具有多个节的文件的一个节中查找字符串

  9. 9

    查找字符串中所有出现的分割子字符串

  10. 10

    查找字符串中所有用点分隔的子字符串?

  11. 11

    查找字符串中所有出现的子字符串

  12. 12

    查找字符串中的所有匹配项

  13. 13

    查找字符串中模式的所有索引?

  14. 14

    Java:在字符串中查找字符串

  15. 15

    查找字符串中包含的所有子字符串的最快方法是什么?

  16. 16

    查找字符串中两个单独字符之间的所有逗号

  17. 17

    在字符串中递归查找字符

  18. 18

    使用递归查找字符串中的字符

  19. 19

    查找字符串中字符的最后一个索引

  20. 20

    查找字符串中的最后一个特定字符类型

  21. 21

    查找字符串中的第一个非重复字符

  22. 22

    使用递归将一个子字符串的所有出现替换为另一个子字符串

  23. 23

    使用递归将一个子字符串的所有出现替换为另一个子字符串

  24. 24

    在字符串数组中查找包含子字符串的所有字符串

  25. 25

    在字符串数组中查找包含子字符串的所有字符串

  26. 26

    从另一个列表中的字符串开始的列表中查找字符串

  27. 27

    查找字符串中的所有字符串

  28. 28

    在字符串中查找字符串的所有实例

  29. 29

    使用php查找字符串中的所有子域

热门标签

归档