【发布时间】:2021-12-26 01:50:50
【问题描述】:
Scanner input = new Scanner (System.in);
String str = input.nextLine(); // reads x , y
int x = Integer.parseInt(str.substring(0, str.indexOf(","))); // this reads the numbers until comma
System.out.println(x);
当我这样做时,我没有收到错误
22, 23
但是当我这样做时
22 ,23
我收到以下错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "22 "
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at scratchFiles.stringArray.main(stringArray.java:9)
【问题讨论】:
-
因为你在
,处拆分,22不是一个可解析的数字,因为尾随空格,而22是可解析的 -
感谢您的回复,我想了这么多,我的问题应该是我应该怎么做才能在输入的数字末尾结束拆分
-
看起来那里甚至还有一个换行符,因为错误消息中有一个换行符。
-
您可以使用
trim()去掉前导和尾随空格 -
谢谢,我今天学到了一个新功能@QBrute
标签: java string integer parseint