如何计算java中给定String的重复子串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算java中给定String的重复子串相关的知识,希望对你有一定的参考价值。
在这个例子中,我无法计算给定字符串中的“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);
答案
它可以用各种方法完成,你应该在问之前在Google上搜索这个,但我提供了一个代码
String text = "manoj kumjjjartiwarimanojmanoj";
Pattern p = Pattern.compile("manoj");
Matcher m = p.matcher(text);
int count = 0;
while (m.find())
{
count +=1;
}
另一答案
您可以直接使用substring
类的startsWith
和String
的组合:
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)。
另一答案
String pattern="manoj"
String text = "manoj kumjjjartiwarimanojmanoj";
String text2 = text.replaceAll (pattern, "")
(text.length() - text2.length())/pattern.length ()
结果:3,是否正确?
请注意,生成的manoj,如输入“mamanojnoj”将不会被replaceAll替换,这可能符合您的利益。
以上是关于如何计算java中给定String的重复子串的主要内容,如果未能解决你的问题,请参考以下文章
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
LeetCode算法题-Repeated String Match(Java实现)