如何计算java中给定String的重复子串

问题描述 投票:0回答:3

在这个例子中,我无法计算给定字符串中的“manoj”......我怎么能这样做..

String text = "manoj kumjjjartiwarimanojmanoj";
char[] line = text.toCharArray();
char[] temp = "manoj".toCharArray();
int count=0;

for (int i =0; i < line.length; i++) {  
    int t =0;
    for (int j = 0; j < temp.length; j++) {
        if(line[i]==temp[j]){
            t=1;
        }
        else{
            t=0;
        }
    }
    if(t==1){
        count=count+1;
    }
}
System.out.println(count);
java for-loop collections
3个回答
1
投票

它可以用各种方法完成,你应该在问之前在Google上搜索这个,但我提供了一个代码

String text = "manoj kumjjjartiwarimanojmanoj";

Pattern p = Pattern.compile("manoj");
Matcher m = p.matcher(text);
int count = 0;
while (m.find())
{
   count +=1;
}

3
投票

您可以直接使用substring类的startsWithString的组合:

String text = "manoj kumjjjartiwarimanojmanoj";
String search = "manoj";

int count = 0;
for (int i=0; i < text.length() - search.length(); i++) {
    if (text.substring(i).startsWith(search)) {
        count++;
    }
}
System.out.println(count);

打印2

这也将计算在“aaaaaa”中搜索“aa”的情况下的所有事件(结果为5)。


0
投票
String pattern="manoj"
String text = "manoj kumjjjartiwarimanojmanoj";
String text2 = text.replaceAll (pattern, "") 
(text.length() - text2.length())/pattern.length ()

结果:3,是否正确?

请注意,生成的manoj,如输入“mamanojnoj”将不会被replaceAll替换,这可能符合您的利益。

© www.soinside.com 2019 - 2024. All rights reserved.