java.lang.NumberFormatException:对于输入字符串:“1”

java.lang.NumberFormatException: For input string: "1"

"out.txt"内容为

1

我的JAVA代码是这样的

    int val=0;
    BufferedReader br = new BufferedReader(new FileReader("out.txt"));

    while(true) {
        String line = br.readLine();
        if (line==null) break;
        val=Integer.parseInt(line);
    }
    br.close();

调试器说,

java.lang.NumberFormatException: For input string: "1"

我需要使用 "out.txt" 中的 1 个。 我如何使用 1 作为整数? 感谢您的关注:)

您必须有尾随空格。使用trim()函数如下:

val = Integer.parseInt(line.trim());

这是代码片段:

int val = 0;
BufferedReader br = new BufferedReader(new FileReader("out.txt"));

String line = null;
while(true) {
    line = br.readLine();
    if (line == null) break;
    val = Integer.parseInt(line.trim());
}
br.close();

此外,如果您想检查 String 是 null 还是 empty,您可以开始使用 Apache Commons StringUtils,如下所示:

if (StringUtils.isEmpty(line)) break;

糟糕。昨天,以下代码运行良好,所以我按照您所见上传了它。但是今天,我又尝试编译了一次 没有 '.toString()' 并且很好,它也有效。 所以这是我的错误,很抱歉打扰你们。 (我不知道为什么前天没有'.toString'它就不能工作。)


非常感谢关心我问题的人,但我找到了答案(我不知道如何自己找到它)

以下代码非常有效:) 谢谢!

    BufferedReader br = new BufferedReader(new FileReader("out.txt"));
    int val=0;

    while(true) {
        String line = br.readLine();
        if (line==null) break;
        val=Integer.parseInt(line.toString());
    }
    br.close();

我删除了这个不可见的 Unicode 字符,现在解析为 INT 效果很好。我知道这里不是这种情况,但也许可以帮助其他人。

text = text.replaceAll("\uFEFF", "");