为什么 java 中的 parseInt 无法识别输入字符串中的整数?

Why is parseInt in java unable to identify integers in my input string?

输入字符串并将其分成不同的部分后,我使用 parseInt 将整数与输入字符串分开。但是当 运行 程序时,在字符串 " 4" 上生成了 NumberFormatException,其中显然包含整数 '4'input 是一个文件读取扫描器类型的变量,在这个操作之前已经在程序中声明了。

String line = input.nextLine();
String[] part = line.split(",  ");

int tempParticleNumber;

tempParticleNumber = Integer.parseInt(part[0]);

终端输出为

Exception in thread "main" java.lang.NumberFormatException: For input string: "      4"
        at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.base/java.lang.Integer.parseInt(Integer.java:638)
        at java.base/java.lang.Integer.parseInt(Integer.java:770)

预期的过程是输入字符串 " 4" 被转换为整数 4,但这并没有发生。

您没有考虑到 space 部分 [0],您的部分 [0] 不是“4”,它的“4”不是整数。

尝试这样做:

line = line.substring(1);
String[] part = line.split(",  ");
int tempParticleNumber;
tempParticleNumber = Integer.parseInt(part[0]);

这将使字符串摆脱初始 space。

只需 trim() 空格:

tempParticleNumber = Integer.parseInt(part[0].trim());