本文目錄一覽:
JAVA求子字元串個數問題
我不知道我的理解有沒有錯誤
String[] temp = sl.split(“;”);//這個是把sl以;分割成若干個子字元串,輸出一下temp你就知道,得到的temp數組裡其實是{1,2,3,4}這4個子字元串
temp.length 就是你要的子字元串的長度
java 獲得某個子字元串的個數
替換掉效率太低,如果是幾十K的字元串,保證慢死你。
我的做法如下:很高效
//src 源,find 查找目標,返回的就是找到的數目
public static int getOccur(String src,String find){
int o = 0;
int index=-1;
while((index=src.indexOf(find,index))-1){
++index;
++o;
}
return o;
}
用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));
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/153361.html