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

问题描述 投票:1回答:3

“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:对于输入字符串:“1”

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

java numberformatexception
3个回答
5
投票

你必须有尾随的空格。使用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;

1
投票

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

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

-1
投票

哎呀。昨天以下代码运作良好,所以我上传了你看到的。但今天,我尝试再编译一次没有'.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();
© www.soinside.com 2019 - 2024. All rights reserved.