Java 找出字串中的多個 index 位置

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 後返回