我在Kotlin中有这种嵌套循环的情况,想象有两个字符串“ abcdef”和“ bfihja”。我正在使用for循环逐个字符地比较这两个字符。如果存在匹配项,将从每个字符串中删除该字符,并且“ S2”的迭代应从头开始。
false
我遇到的问题是,当字符匹配时,“ S2”字符串的比较应重新从头开始。我找不到重启它的方法。
答案 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。