java - 如何打印出字符串的所有子串?

标签 java loops substring

我四处搜寻,找不到任何地方列出的这个问题 我花了一些时间尝试让它与两个循环一起工作,但失败了。我会对任何更短、更优雅的东西感兴趣。这是一个练习,但不是家庭作业问题,正如标题所说,我应该保持简单,即没有数组/列表/哈希等。

到目前为止我的工作:

    String str = "string";
    String subString;
    int k = 1;

    while (k <= str.length()) {

        for (int i = 0; i < str.length(); i++) {

            for (int j = i+1; j <= str.length(); j++) {

                subString = str.substring(i,j);

                if (subString.length()==k) {System.out.println(subString);}

            }               
        }

        k++;

    }

最佳答案

您只需要 2 个嵌套循环,而不是 3 个。您不需要同时使用 kj

String str = "string";
for (int i = 0; i < str.length(); i++) {
    for (int j = i + 1; j <= str.length(); j++) {
        System.out.println(str.substring(i, j));
    }               
}

输出:

s
st
str
stri
strin
string
t
tr
tri
trin
tring
r
ri
rin
ring
i
in
ing
n
ng
g

关于java - 如何打印出字符串的所有子串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40624860/

相关文章:

java - 从远程 View 更改 Activity 切换的 boolean 值?

java - 在 Spring Web 服务中创建一个新线程

java - 循环结构,很困惑

Java - 做循环帮助解释需要

java - 检查字符串是否包含 Velocity 中的特定子字符串

java - Java删除指定子字符串

reactjs - 在 react 中显示一个字符串

java - 单击删除按钮时,android从数组列表中删除值

java - 在单个节点中运行 Spark 计算

java - 停止循环直到方法调用 onFinished()