关于'ArrayIndexOutOfBoundsException'的错误以及更多?

时间:2013-09-26 06:18:27

标签: java

我似乎无法弄清楚导致此后续错误的原因“线程中的异常”主“java.lang.ArrayIndexOutOfBoundsException:1     在Bank.main(Bank.java:42)< ---这一行指的是以“banklist.add(new Bank(values [0] ....”

开头的代码行)
public static void main (String[] args) throws FileNotFoundException 
    {
        FileReader fr = new FileReader("Bank Data.txt");
        BufferedReader reader = new BufferedReader(fr);
        List<Bank> banklist = new ArrayList<Bank>();
       try { 
        String line;
        while ((line = reader.readLine()) != null)
            {
            String[] values = line.split("/t"); // Split on "tab"

            banklist.add(new Bank(values[0], Integer.parseInt(values[1]),Integer.parseInt(values[2]),Integer.parseInt(values[3]),Integer.parseInt(values[4]), values[5])); // Create a new Player object with the values extract and add it to the list

3 个答案:

答案 0 :(得分:1)

最可能的解释是,在您的文件中,有些行没有标签。也许最后一行是空的。

可能的解决方案可能是进行防御性编程并在将数据直接索引为数组[1]之前检查数组的长度。

答案 1 :(得分:0)

您使用了错误的表达方式。

查找以下解决方案..

       while ((line = reader.readLine()) != null) {

            String regexp = "[\\s,;\\t]+";
            String[] values = line.split(regexp);

            banklist.add(new Bank(values[0],
                    Integer.parseInt(values[1]),
                    values[2],
                    values[3],
                    Integer.parseInt(values[4]),
                    values[5])
            );



        }

答案 2 :(得分:0)

您已在/t而非\t上拆分。注意反斜杠而不是正斜杠。

由于您的行可能不包含任何/t序列,因此您无法获得代码所需的所有单词。