String s1 = "aabbccaa";
String s2 = "aa";
我需要计算s2
中s1
重复了多少次。我尝试了没有运气的拆分文本。有人可以帮忙吗?
String s1 ="aabbccaa";
String s2 = "aa";
int count = 0;
for(int i = 0; i < s1.length(); i++) {
for(int j = 0; j < s2.length(); j++) {
if(s1.charAt(i) == s2.charAt(j)) {
count++;
}
}
}
System.out.println(count);
}
}
答案 0 :(得分:0)
我使用正则表达式。不确定这是否是您想要的 从输入s2创建parttern,并将其与s1匹配。 Match将创建一个列表匹配器并计算出答案。
public int countString(String s1, String s2) {
Pattern pattern = Pattern.compile(s2);
Matcher matcher = pattern.matcher(s1);
int count = 0;
while (matcher.find()) {
count++;
}
return count;
}
输出为2
答案 1 :(得分:0)
public class Solution {
public static void main(String[] args) {
String s1 ="aabbccaassssASaatestaa";
String s2 = "aa";
// split the string S1 by s2
String a[] = s1.split(s2);
//Output will be 4 - because 'aa' 4 times in s1
System.out.println(a.length);
}
}
Output - 4
如果发生重叠,则可以使用“ matcher”来获取其他字符串中的匹配字符串数。 https://www.tutorialspoint.com/javaregex/javaregex_matcher_replaceall.htm
String s1 ="aaaassssaassaass";
String s2 = "aa";
Pattern pattern =Pattern.compile(s2);
Matcher matcher = pattern.matcher(s1);
int i = 0;
while(matcher.find()){
i++;
}
//Out put will be 4
System.out.println(i);
答案 2 :(得分:-1)
您可以使用indexOf方法。
String indexOf(String str):此方法返回指定子字符串首次出现在此字符串中的索引。如果它不是作为子字符串出现,则返回-1。