为什么
Integer.parseInt
会产生这个错误?
public static void main(String[] args) {
String input = "6";
Pattern pattern = Pattern.compile("[0-9]*");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String str = matcher.group();
System.out.println(Integer.parseInt(str));
}
}
线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:“” 在 java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) 在 java.base/java.lang.Integer.parseInt(Integer.java:675) 在 java.base/java.lang.Integer.parseInt(Integer.java:781)
因为您的模式使用
*
,所以在您的个位数之后还有另一个匹配项 - 一个空字符串。使用 +
代替,该空字符串将不匹配。