为什么 Integer.parseInt 在线程“main”中产生异常 java.lang.NumberFormatException: For input string: ""

问题描述 投票:0回答:1

为什么

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)

java pattern-matching text-parsing
1个回答
2
投票

因为您的模式使用

*
,所以在您的个位数之后还有另一个匹配项 - 一个空字符串。使用
+
代替,该空字符串将不匹配。

© www.soinside.com 2019 - 2024. All rights reserved.