Find all occurrences of substring in string in Java

前端 未结 2 1721
说谎
说谎 2020-12-06 11:52

I\'m trying to find all occurrences of a substring in a string in Java.

For example: searching \"ababsdfasdfhelloasdf\" for \"asdf\" would return [8,17] since there

2条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-06 11:59

    Using a regex is definitely an overly heavy solution for finding substrings, and it'll especially be a problem if your substring contains special regex characters like .. Here's a solution adapted from this answer:

    String str = "helloslkhellodjladfjhello";
    String findStr = "hello";
    int lastIndex = 0;
    List result = new ArrayList();
    
    while(lastIndex != -1) {
    
        lastIndex = str.indexOf(findStr,lastIndex);
    
        if(lastIndex != -1){
            result.add(lastIndex);
            lastIndex += 1;
        }
    }
    

提交回复
热议问题