获取错误java.lang.NumberFormatException:对于输入字符串:";16.0“;
我想将单元格值转换为获取错误java.lang.NumberFormatException:对于输入字符串:";16.0“;,java,Java,我想将单元格值转换为int值,因此我尝试以下代码: for (int chk1 = 1; chk1 < m; chk1++ ) { int intCounter = Integer.parseInt( cells.checkCell(chk1,0).getValue().toString() ); } 我怎样才能避免这种情况?有没有办法将所有数据转换成整数或字符串,反之亦然?问题在于“.0”位Integer.parseInt只允许数字,因此小数点是非法的,因此出现NumberFor
int
值,因此我尝试以下代码:
for (int chk1 = 1; chk1 < m; chk1++ ) {
int intCounter = Integer.parseInt( cells.checkCell(chk1,0).getValue().toString() );
}
我怎样才能避免这种情况?有没有办法将所有数据转换成整数或字符串,反之亦然?问题在于“.0”位Integer.parseInt
只允许数字,因此小数点是非法的,因此出现NumberFormatException
您应该确保您的输入确实是一个整数(即“16”),或者如果您确实想允许使用小数,那么请使用
Double.parseDouble
或Float.parseFloat
查看尝试并查看到底是什么输入到parseInt
System.out.println(cells.checkCell(chk1,0).getValue().toString());
或者记录下来
根据Cameron的回答,查看您正在解析的值是否有效。@Cameron Skinner已经给了您一个确切的提示,告诉您如何通过使用
double
或float
消除此异常。但是如果你真的想玩Integer
你可以
for( int chk1 = 1 ; chk1 < m ; chk1++ ) {
int intCounter = (int)cells.checkCell(chk1,0).getValue();
}
for(int-chk1=1;chk1
异常已经准确地告诉了您要输入到parseInt()
,它是16.0
!我是新来的。。同意16.0不会被解析。但是我们从哪里可以看到输入是16.0?我只是不知道在哪里。@Schock:异常消息在标题中(不幸的是,只有在那里)。如果可以将其转换为int,则不需要toString和parseInt()
for( int chk1 = 1 ; chk1 < m ; chk1++ ) {
int intCounter = (int)cells.checkCell(chk1,0).getValue();
}