java.lang.NumberFormatException:对于输入字符串:";1“;
“out.txt”的内容是 一, 我的JAVA代码是这样的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
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 CommonsStringUtils
,如下所示:
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作为输入的一部分处理。我重新导出到不同的编码,问题就解决了。