Java計算字符串中某個字符出現的次數


方式一:使用 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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM