是否有任何有效的标准java库,除了String的split方法,它可以帮助计算给定String对象中给定正则表达式模式的出现
伙计们请对以下方法提出一些意见:
String s = "AA---AA---AA";
String[] temp = s.split("AA");
int count = temp.length - 1;
答案 0 :(得分:1)
有效的方法是使用循环。标准库没有提供执行此操作的方法。
这样的事情:
Matcher m = Pattern.compile(regex).matcher(input);
int count = 0;
while (m.find()) {
count++;
}
使用String.split(separator)
的方法可能 1 效率较低,因为它需要创建一个包含字符串段的数组。当然没有理由认为split
的计算复杂性与循环方法不同。
1 - 我没有费心去衡量这一点。如果这对你很重要,你应该构建一个基准......
答案 1 :(得分:0)
import java.util.regex.*;
class RegexCount {
public static void main(String[] args) {
String test = "Test---Test---Test";
Pattern pattern = Pattern.compile("Test");
Matcher matcher = pattern.matcher(test);
int count = 0;
while (matcher.find())
count++;
System.out.println(count);
}
}
输出:
3