如何使用 Java Stream API 查找字符串中重复出现的子字符串

Kru*_*nar 2 java string substring frequency stream

public class Test {    
    public static void main(String[] args) {
       String str = "WELCOMEWELCOME";
       // find the occurance of 'CO' in the given string using stream API
    }
}
Run Code Online (Sandbox Code Playgroud)

Arv*_*ash 5

您可以使用Stream如下所示的 API 和 RegEx API 来满足此要求:

import java.util.regex.MatchResult;
import java.util.regex.Pattern;

public class Main {
    public static void main(String args[]) {
        // find the occurance of 'CO' in the given string using stream API
        String str = "WELCOMEWELCOME";
        String substring = "CO";
        
        System.out.println(getSubstringCount(str, substring));
    }
    static long getSubstringCount(String str, String substring) {
        return Pattern.compile(substring)
                .matcher(str)
                .results()
                .map(MatchResult::group)
                .count();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

2
Run Code Online (Sandbox Code Playgroud)

ONLINE DEMO