Java NumberFormatException:无效的int,即使它实际上是整数
我在将字符串解析为整数时遇到一些问题,我不知道问题出在哪里 我将一个带整数值的字符串传递给我的函数,以检查它是否可解析 这是我的职责Java NumberFormatException:无效的int,即使它实际上是整数,java,string,parsing,int,number-formatting,Java,String,Parsing,Int,Number Formatting,我在将字符串解析为整数时遇到一些问题,我不知道问题出在哪里 我将一个带整数值的字符串传递给我的函数,以检查它是否可解析 这是我的职责 private boolean isNumeric (String value){ try { System.out.println("VALUE = " +value); int x = Integer.parseInt(value); return true;
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"
你们能帮我找出这里出了什么问题吗。因为我无法将此字符串转换为整数。您可以尝试此操作,因为这将删除输入中的所有空白:
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应返回NumberFormatException,但应返回77。因此,在将其解析为int之前,您应该尝试对其进行修剪,这可能会有所帮助。字符串中是否有不可打印的字符?为了证明Andy的直觉,请尝试打印value.length。如果大于2,他是对的。不,先生,只是数字,正如你在结果中看到的,我打印它是为了检查是否有其他字符,但没有。@renoroysorima非打印的哪一部分让你认为打印会显示它们?:@renoroysorima,正如你看到的,打印带有不可打印字符的字符串不会显示不可打印字符。谢谢兄弟。此字符串中有一个不可见的空白。所以我需要删掉这些空白,使之成为一个数字。没问题,很乐意帮忙!: