String 有個 API 叫 indexOf,可以找出字詞的位置
String string = "TENET";
int index = string.indexOf("T");
System.out.println(index); //0
問題是字串 TENET 中的 T 並非只有一個
要怎麼找到第二個 T 呢?
可以使用另一個重載方法 indexOf(String str, int fromIndex)
指定查找的起始位置,就能避免一直找到第一個 T
index = string.indexOf("T", 1);
System.out.println(index); //4
但如果字串有多個(三個以上)重複詞
寫死 fromIndex 參數顯然不恰當
可以設計以下方法
public List<Integer> findIndexs(String string, String word) {
List<Integer> indexList = new ArrayList<Integer>();
int index = string.indexOf(word);
while (index >= 0) {
indexList.add(index);
index = string.indexOf(word, index + 1);
}
return indexList;
}
找到指定字詞後就往後推
直至 index = -1 找不到為止
將結果存在 list 後返回