以下代码将打印2String word = "bannanas";String guess = "n";int index;System.out.println( index = word.indexOf(guess));我想知道如何在字符串“ bannanas”中获取“ n”(“ guess”)的所有索引预期结果将是: [2,3,5]
3 回答

陪伴而非守候
TA贡献1757条经验 获得超8个赞
这应该打印位置的名单没有-1在这个月底彼得Lawrey的解决方案 已经过。
int index = word.indexOf(guess);
while (index >= 0) {
System.out.println(index);
index = word.indexOf(guess, index + 1);
}
也可以for循环执行:
for (int index = word.indexOf(guess);
index >= 0;
index = word.indexOf(guess, index + 1))
{
System.out.println(index);
}
[注意:如果guess可以长于单个字符,那么通过分析guess字符串,可以word比上述循环更快地循环。这种方法的基准是Boyer-Moore算法。但是,似乎不存在使用这种方法的条件。]

四季花海
TA贡献1811条经验 获得超5个赞
请尝试以下操作(现在末尾不会打印-1!)
int index = word.indexOf(guess);
while(index >= 0) {
System.out.println(index);
index = word.indexOf(guess, index+1);
}
添加回答
举报
0/150
提交
取消