方式一:使用 replace 的方式計算字符串出現次數
@Test
public void show() {
String s1 = "absfsdfabsdfosfabsfspfoj";
String s2 = "ab";
// 獲取原始字符串的長度
int oldCount = s1.length();
// 將 ab 替換為空之后字符串的長度
int newCount = s1.replace(s2, "").length();
// 由於統計的字符串長度是2,所以出現的次數要除以要統計字符串的長度
System.out.println((oldCount - newCount) / s2.length()); //=>3
}
方式二:使用 while 循環加 indexOf
@Test
public void show2() {
String s1 = "absdifhabiosdfiabsoidfabsdf";
String s2 = "ab";
int count = getStrCunt(s1, s2);
System.out.println(count);
}
private int getStrCunt(String mainStr, String subStr) {
// 聲明一個要返回的變量
int count = 0;
// 聲明一個初始的下標,從初始位置開始查找
int index = 0;
// 獲取主數據的長度
int mainStrLength = mainStr.length();
// 獲取要查找的數據長度
int subStrLength = subStr.length();
// 如果要查找的數據長度大於主數據的長度則返回0
if (subStrLength > mainStrLength) return 0;
// 循環使用indexOf查找出現的下標,如果出現一次則count++
while ((index = mainStr.indexOf(subStr, index)) != -1) {
count++;
// 從找到的位置下標加上要查找的字符串長度,讓指針往后移動繼續查找
index += subStrLength;
}
return count;
}