即使<数组长度,JAVA数组索引也超出范围

时间:2020-08-01 02:45:01

标签: java arrays

包含对象详细信息的数组超出范围。它会说“索引1超出长度1的范围”。但是,当我打印字符串和数组时,它似乎被捕获了。即使数组长度为3而不是1,但错误仍然存​​在

此外,最初,我能够通过将columns.split(“ \ s +”)放到一起来工作,但是经过几次运行,它又回到了索引1的长度为1的范围之外。 See Image查看问题的外观。

我想念什么?

Added Println statement,以查看每行显示的内容。

3 个答案:

答案 0 :(得分:0)

在while循环中,应该在分割之前打印该行,以便知道该行包含的内容。

正如Nick所建议的那样,也许该行是空白的,或者没有符合您期望的FIELD_SEP。

答案 1 :(得分:0)

我认为您需要检查您的conversionsFile和该文件中的某处,可能会有一行仅包含一个值/列(即没有适当的数据),而不是包含所有三个值。

答案 2 :(得分:0)

此行显示错误:

String toUnit = columns[1];

我认为该索引处的值不存在,即数组大小为1。

可能的根本原因:拆分未正确进行,或者如果拆分值,则仅提取一个值。

检查文件是否已设置值,以使其应在数组中。否则,您将得到该错误。