Java Regex:简单除法字符串的模式
我有一个字符串遵循以下模式:Java Regex:简单除法字符串的模式,java,regex,Java,Regex,我有一个字符串遵循以下模式: 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.pars
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));
}
2/9(22%)
其中2
或9
可能包含一个或多个数字。我需要解析这两个整数,所以我想出了这个模式:
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:无效int:“2/9(22%)”
这意味着它与第0组上的整个字符串相匹配
我还尝试将/
字符放在[/]
中,但结果相同
我做错了什么?谢谢 使用第1组。组0将匹配整个字符串
int i = Integer.parseInt(matcher.group(1));
使用第1组。组0将匹配整个字符串
int i = Integer.parseInt(matcher.group(1));
您应该使用
组(1)
和组(2)
group(0)
是您在问题中实际陈述的整个字符串您应该使用group(1)
和group(2)
group(0)
是您在问题中实际陈述的整个字符串Ack!谢谢我没意识到,阿克!谢谢我不知道。