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

java.lang.NumberFormatException:对于输入字符串:";1“;,java,numberformatexception,Java,Numberformatexception,“out.txt”的内容是 一, 我的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); } b

“out.txt”的内容是

一,

我的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作为整数?
感谢您的关注:)

您一定有尾随空格。使用
trim()
功能如下:

val = Integer.parseInt(line.trim());
if (StringUtils.isEmpty(line)) break;
以下是代码片段:

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();
此外,如果您想检查字符串是否为
null
,您可以开始使用Apache Commons
StringUtils
,如下所示:

val = Integer.parseInt(line.trim());
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", "");

这很奇怪,你能给我们看一下你的txt文件吗?“out.txt”只有一个数据,正如我在回答问题时所写的。看看是否有任何隐藏的特殊字符、空格等。没有任何隐藏的特殊字符:)但谢谢你回答我,我先尝试了“trim()”,但没有成功^;;但是谢谢你回答我,
已经是一个字符串了!如果你对它执行
toString()
,你认为会发生什么?这没有意义,这是BOM表。我遇到了与OP完全相同的问题,结果我从Excel中导出了一个CSV文件,作为UTF-8和BOM。Java将BOM作为输入的一部分处理。我重新导出到不同的编码,问题就解决了。