我有一个遵循此模式的字符串:

2/9 (22%)

其中29可以包含1个或多个数字。我需要解析这两个整数,因此我想到了这种模式:

String patternString = "([0-9]+)/([0-9]+).*";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(stat);

if (matcher.matches()) {
    int i = Integer.parseInt(matcher.group(0));
    int j = Integer.parseInt(matcher.group(2));
}


但这崩溃并显示以下错误:

java.lang.NumberFormatException: Invalid int: "2/9 (22%)"

这意味着它与第0组上的整个字符串匹配。

我也尝试将/字符放在[/]内,但结果相同。

我究竟做错了什么?谢谢!

最佳答案

您应该使用group(1)group(2)

group(0)是您在问题中实际说明的整个字符串

关于java - 正则表达式:简单除法字符串的模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39648510/

10-13 22:39