用java 正則表達式 計算一個字符串中某個子串的個數

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexTest {

    public static void main(String args[]){
        String str = "abcdfdfsabcdfdsf abc fdfdabcabc";

        //1. 用這則表達式處理, 不過好像一點都不省事.. 
        Pattern p = Pattern.compile("abc",Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(str);
        int count = 0;
        while(m.find()){
              count ++;
        }
        System.out.println("ABC的個數 : " + count);

        //2. 用普通方法來做,比較省事
        String [] ary = ("," + str + ",").split("abc");
        System.out.println("ABC的個數 : " + (ary.length - 1));
    }
} 

我覺得用split方法,以"abc"做分隔符將字串拆分成數組,這樣比較簡單.不過上面的代碼(第二種方法)只能判斷小寫"abc"的個數, 如果你還需要將"ABC"或者"aBc"或者"abC"這樣的字串都找出來, 只需要將第二種方法的代碼修改成下面這樣的就可以了:

        String [] ary = ("," + str.toLowerCase() + ",").split("abc");
        System.out.println("ABC的個數 : " + (ary.length - 1));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章