次のコードは2を出力します
String word = "bannanas";
String guess = "n";
int index;
System.out.println(
index = word.indexOf(guess)
);
文字列「bannanas」の「n」(「推測」)のすべてのインデックスを取得する方法を知りたいです。
予想される結果は次のようになります。[2,3,5]
ベストアンサー1
-1
これにより、末尾のを除いたポジションのリストが印刷されます。ピーター・ローリーの解決策
持っていまし
た。
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
が1文字より長い場合は、guess
文字列を解析することで、上記のループよりも高速にループすることができますword
。このようなアプローチのベンチマークは、ボイヤー・ムーアアルゴリズムしかし、そのようなアプローチを採用するのに有利な条件は存在しないようです。