为什么 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());
输入字符串并将其分成不同的部分后,我使用 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());