NumberFormatException: Invalid int 即使它真的是一个整数
NumberFormatException: Invalid int even if it is really an integer
我在将字符串解析为整数时遇到一些问题,我不知道是什么问题。
我正在将一个具有整数值的字符串传递给我的函数以检查它是否可解析。
这是我的职能。
private boolean isNumeric (String value){
try {
System.out.println("VALUE = " +value);
int x = Integer.parseInt(value);
return true;
} catch (NumberFormatException e) {
System.out.println("NumberFormatException: " + e.getMessage());
return false;
}
}
我通过打印到控制台进行了检查。这是结果。
I/System.out: VALUE = 77
NumberFormatException: Invalid int: "77"
你们能帮我弄清楚这里出了什么问题吗?因为我无法将此字符串转换为整数。
您可以试试这个,因为这会 trim 从您的输入中删除所有空格:
private boolean isNumeric (String value){
try {
System.out.println("VALUE = " +value);
int x = Integer.parseInt(value.trim());
return true;
} catch (NumberFormatException e) {
System.out.println("NumberFormatException: " + e.getMessage());
return false;
}
}
如果字符串不可解析,parseInt()
应该 return 一个 NumberFormatException,但“77”应该是。因此,在将其解析为 int 之前,您应该尝试 trim 它,也许这会有所帮助。
我在将字符串解析为整数时遇到一些问题,我不知道是什么问题。
我正在将一个具有整数值的字符串传递给我的函数以检查它是否可解析。
这是我的职能。
private boolean isNumeric (String value){
try {
System.out.println("VALUE = " +value);
int x = Integer.parseInt(value);
return true;
} catch (NumberFormatException e) {
System.out.println("NumberFormatException: " + e.getMessage());
return false;
}
}
我通过打印到控制台进行了检查。这是结果。
I/System.out: VALUE = 77
NumberFormatException: Invalid int: "77"
你们能帮我弄清楚这里出了什么问题吗?因为我无法将此字符串转换为整数。
您可以试试这个,因为这会 trim 从您的输入中删除所有空格:
private boolean isNumeric (String value){
try {
System.out.println("VALUE = " +value);
int x = Integer.parseInt(value.trim());
return true;
} catch (NumberFormatException e) {
System.out.println("NumberFormatException: " + e.getMessage());
return false;
}
}
如果字符串不可解析,parseInt()
应该 return 一个 NumberFormatException,但“77”应该是。因此,在将其解析为 int 之前,您应该尝试 trim 它,也许这会有所帮助。