Java 字符串中最长的重复子字符串

Java 字符串中最长的重复子字符串,java,Java,我有一段代码,它给出了我选择的字符串的所有子字符串: static void subString(char str[], int n) { for (int len = 1; len <= n; len++) { for (int i = 0; i <= n - len; i++) { int j = i + len - 1; for (int k = i; k

我有一段代码,它给出了我选择的字符串的所有子字符串:

static void subString(char str[], int n) {
    
    for (int len = 1; len <= n; len++) {
       
        for (int i = 0; i <= n - len; i++) {
           
            int j = i + len - 1;
            for (int k = i; k <= j; k++) {
                System.out.print(str[k]);
            }

           System.out.println();
        }
static void子字符串(char str[],int n){

对于(int len=1;len,如果只需要对所有子字符串进行计数,可以执行以下操作

public static void main( String[] args ) {
    char[] ch = {'o','v', 'o', 'v'};
    Map<String, Integer> count = subString(ch, ch.length);

    for(var entry : count.entrySet()) {
        System.out.println(entry.getKey() + ":" + entry.getValue());
    }
}

public static Map<String, Integer> subString(char ch[], int n) {
    Map<String, Integer> count = new HashMap<>();

    for(int i = 0; i < n; i++)
        for(int j = 1; j <= n-i; j++) {
            String str = String.valueOf(ch, i, j);
            count.put(str, count.getOrDefault(str, 0)+1);
        }

    return count;
}
publicstaticvoidmain(字符串[]args){
char[]ch={'o','v','o','v'};
映射计数=子字符串(ch,ch.length);
for(变量项:count.entrySet()){
System.out.println(entry.getKey()+“:”+entry.getValue());
}
}
公共静态映射子字符串(字符ch[],int n){
映射计数=新的HashMap();
对于(int i=0;i对于(int j=1;j)计数器的映射?请参见此链接:Basicamente,如果我使用字符串“ovov”,我将得到以下输出:ovovovovovovovov,现在我想知道最频繁使用的子字符串以及最常用的子字符串的使用次数