java.lang.NumberFormatException:对于输入字符串:"10.0"

Geo*_*rge 2 java exception numberformatexception

此代码必须验证findActions()方法的输入数据:

try {
    System.out.println(findActions(lookingArea.substring(0, right)));// always printing valid number string
    Integer.parseInt(findActions(lookingArea.substring(0, right)));// checking for number format
}
catch(NumberFormatException exc) {
    System.out.println(exc);
}
Run Code Online (Sandbox Code Playgroud)

但我总是java.lang.NumberFormatException: For input string: "*number*" 那么奇怪,因为检查System.out.println(findActions(lookingArea.substring(0, right)));,

我变得*number*像10.0

rge*_*man 5

Integer.parseInt不期望这个.角色.如果您确定它可以转换为a int,请执行以下操作之一:

  1. ".0"在解析之前消除字符串的结尾,或者
  2. 调用Double.parseDouble,并将结果转换为int.

引用上面链接的Javadoc:

字符串中的字符必须都是十进制数字,除了第一个字符可以是ASCII减号' - '('\ u002D')表示负值或ASCII加号'+'('\ u002B')表示正值.