java - 如何修复 java.lang.ArrayIndexOutOfBoundsException 错误

标签 java arrays jfilechooser

尝试使用 JFileChooser 扫描文本文件将其添加到数组并将其中一个字符串解析为 double 型并将两个字符串解析为整数时遇到错误。这是否与 addEmployee 方法将六个参数添加到 arrayList 有关?这是代码...

else if (e.getSource()==readButton){
            JFileChooser fileChooser = new JFileChooser("src");
        if  (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
        {
            empFile=fileChooser.getSelectedFile();
        }
            Scanner scan = new Scanner("empFile");
            while(scan.hasNext()){
                String[] rowData = scan.next().split(":");
                if(rowData.length == 5){
                    rowData[4] = null;
                    fName = rowData[0];
                    lName = rowData[1];
                    position2 = rowData[2];
                    firstParam = Double.parseDouble(rowData[3]);
                    secondParam = Integer.parseInt(rowData[4]);
                    empNum = Integer.parseInt(rowData[5]);
                }
                else{
                fName = rowData[0];
                lName = rowData[1];
                position2 = rowData[2];
                firstParam = Double.parseDouble(rowData[3]);
                secondParam = Integer.parseInt(rowData[4]);
                empNum = Integer.parseInt(rowData[5]);
                }
                if (position2.equals("Manager")){
                    c.addEmployee(fName, lName, position2, firstParam, 0, empNum);
                }
                else if(position2.equals("Sales")){
                    c.addEmployee(fName, lName, position2, firstParam, 0, empNum);
                }
                else{
                    c.addEmployee(fName, lName, position2, firstParam, secondParam, empNum);
                }
            }

        }

John:Smith:Manufacturing:6.75:120:444

Betty:White:Manager:1200.00:111

Stan:Slimy:Sales:10000.00:332

Betty:Boop:Design:12.50:50:244

最佳答案

您正在尝试获取 empNum = Integer.parseInt(rowData[5]);

行数据只有大小 5,这意味着索引 0-4,这就是 ArrayIndexOutOfBoundsException 出现的原因

因此初始化 String[] rowData = new String[6];

关于java - 如何修复 java.lang.ArrayIndexOutOfBoundsException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305252/

相关文章:

java - 如何获取 IBM Java 8 的调试信息包

java - 无法使用expandPath方法扩展JTree

c++ - vector 数组的默认值是多少?

JavaScript 数组频率测量对象属性

java - 如何从不同的类返回文件?只返回null

java - 无法使用 maven-assembly-plugin 设置最终的 jar 名称

Java:XMLUnit.setIgnoreWhitespace(true) 导致奇怪的输出

c - memcpy 将较小的数组连接成较大的数组

java - 在java中创建一个保存/另存为对话框,用于保存新创建的文件或编辑的文件

java - 从 JFileChooser 打开按钮关闭上一个窗口