【发布时间】:2013-02-08 21:54:36
【问题描述】:
我有这个模式:
Pattern p = Pattern.compile("([0-9]){11}");
我的问题是如何从组中获取所有数字并将其相加。 我正在尝试使用此代码,但无法正常工作:
Matcher matcher = p.matcher(field);
int result = 0;
if (matcher.matches()) {
for (int i = 0; i <= matcher.groupCount(); i++) {
String number = matcher.group(i + 1);
result += Integer.parseInt(number);
}
return result;
} else {
return -1;
}
它找到的唯一组是最后一个组。
【问题讨论】:
-
这是因为
.matches()每个输入只匹配一次。 -
和
Matcher#groupCount()返回匹配器模式中的捕获组数。 -
您是否要对单个数字求和?!?
"1234" = 1+2+3+4 -
@Bailey S 是的,我正在尝试这样做。
标签: java regex regex-group