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,正如你看到的,打印带有不可打印字符的字符串不会显示不可打印字符。谢谢兄弟。此字符串中有一个不可见的空白。所以我需要删掉这些空白,使之成为一个数字。没问题,很乐意帮忙!: