java求子字符串个数问题,求字符串中子串的个数

发布时间:2022-11-20

本文目录一览:

1、JAVA求子字符串个数问题
2、java 获得某个子字符串的个数
3、用java 正则表达式 计算一个字符串中某个子串的个数

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));