如何在Kotlin中重新启动for循环

时间:2020-08-09 15:48:48

标签: for-loop kotlin iteration restart

我在Kotlin中有这种嵌套循环的情况,想象有两个字符串“ abcdef”和“ bfihja”。我正在使用for循环逐个字符地比较这两个字符。如果存在匹配项,将从每个字符串中删除该字符,并且“ S2”的迭代应从头开始。

false

我遇到的问题是,当字符匹配时,“ S2”字符串的比较应重新从头开始。我找不到重启它的方法。

2 个答案:

答案 0 :(得分:2)

您可以使用标记的外部while循环。通过在外部循环上使用continue,可以重新开始迭代。您可以将break放在外部迭代之后,以便在完成后退出while循环。

outer@while (true) {
    for (i in S1.indices) {
        for (j in S2.indices) {
            if (S1[i] == S2[j]) {
                S1 = StringBuilder(S1).deleteCharAt(i).toString()
                S2 = StringBuilder(S2).deleteCharAt(j).toString()
                continue@outer
            }
        }
    }
    break
}

答案 1 :(得分:0)

您应该在内部for循环中使用范围从0到length-of-S2的常规for循环,并在要“重置” for循环时将迭代器变量重置为0。