为了账号安全,请及时绑定邮箱和手机立即绑定

字符串中所有出现的字符的索引

字符串中所有出现的字符的索引

慕容708150 2019-12-13 15:10:24
以下代码将打印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算法。但是,似乎不存在使用这种方法的条件。]



查看完整回答
反对 回复 2019-12-14
?
四季花海

TA贡献1811条经验 获得超5个赞

请尝试以下操作(现在末尾不会打印-1!)


int index = word.indexOf(guess);

while(index >= 0) {

   System.out.println(index);

   index = word.indexOf(guess, index+1);

}



查看完整回答
反对 回复 2019-12-14
  • 3 回答
  • 0 关注
  • 300 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信