我有一个字符串,如:
Scanner input = new Scanner(System.in);
我正在尝试使用regExp获取一个数字的重复次数(在本例中为5),所以我的方法如下:
String s = " 10 5 15 55 5 ";
但这不起作用,它也匹配55。
如果我在数字的两边都使用空格,例如:
long repetitions = s.split(" 5").length -1;
它不起作用,它只计算一个10的实例(我有两个)。
所以我的问题是哪个regExp可以正确计算两个案例?
答案 0 :(得分:1)
您可以使用与使用word-boundaries的正则表达式'\b5\b'
进行模式匹配来查找不属于其他内容的5
:
String s = " 10 5 15 55 5 ";
Pattern p = Pattern.compile("(\\b5\\b)");
Matcher m = p.matcher(s);
int countMatcher = 0;
while (m.find()) { // find the next match
m.group();
countMatcher++; // count it
}
System.out.println("Number of matches: " + countMatcher);
<强>输出强>
Number of matches: 2
您可以对10
等进行同样的操作。