Java 从txt文件读取数据时出现问题

Java 从txt文件读取数据时出现问题,java,numberformatexception,reader,Java,Numberformatexception,Reader,我正在从文本文件中读取大部分数据。这一次,我在从.txt文件读取数据数组时遇到了一些问题。我提供的部分代码如下: MWE: SFILE文件: 1 2 400 2 5 800 5 7 450 2 3 800 3 6 550 3 4 500 4 5 500 7 5 450 5 4 500 4 3 400 6 3 550 3 2 700 2 1 400 5 2 800 以及zat文件: 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0

我正在从文本文件中读取大部分数据。这一次,我在从.txt文件读取数据数组时遇到了一些问题。我提供的部分代码如下: MWE:

SFILE文件:

1 2 400
2 5 800
5 7 450
2 3 800
3 6 550
3 4 500
4 5 500
7 5 450
5 4 500
4 3 400
6 3 550
3 2 700
2 1 400
5 2 800
以及zat文件:

1 0 0 0 1 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 0 1
0 1 0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 1 0
0 0 1 0 0 0 0 0 1 0
0 0 0 1 0 0 1 0 0 0
0 0 0 1 0 1 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 1 0 0 1

我有一些其他的SLEG数组和其他整数范围,我没有任何问题。我将感谢你的建议

我在数据文件中没有看到四个空格,但错误消息是“For input string:“0” 我猜你的档案里有一张表格。您在编辑器中看不到它,但它可能已转换为四个空格。 试着换掉你的衣服

split(" ");

“\s+”将理解多个空格和表格。
我希望这会有所帮助。

是时候在异常发生之前使用调试器逐步检查代码了,以查看发生了什么。似乎文本行的拆分没有按预期工作,找出原因的最快方法是进行密集调试。错误消息显示:“0\uuuuu0”。“0”应该是什么数字?正如HFOE所说,通过调试器逐步完成这一过程,所有内容都应该是清楚的。因为您没有发布有效的,甚至没有指出哪一行是
模型。java:832
,引发异常的那一行,我不确定我们是否可以提供比给出的更多的建议。我猜您有一些不是空格的内容(可能是选项卡?)分隔两个数字(您引用的“0”)。将
拆分(“”
更改为
拆分(“\\s+”)
以拆分任何空格序列(不仅仅是空格)。然后重试?更好:
.split(\\s+”);
正如moilejter之前在原始帖子的评论中所指出的那样,由于您希望贪婪地捕获numbersOops之间的所有空白,因此我非常感谢您的所有评论。请将.split(\\s+)改为.split(“”)实际上解决了这个问题。我想可能是因为我将Excel中的数组数据复制粘贴到了.txt文件中,虽然我已经修复了每个数字的空格,但读者无法实现。
1 0 0 0 1 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 0 1
0 1 0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 1 0
0 0 1 0 0 0 0 0 1 0
0 0 0 1 0 0 1 0 0 0
0 0 0 1 0 1 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 1 0 0 1
split(" ");
split(""\\s+""); \\ Thanks for the comment, I did not think about several whitespace characters.