如何解决我的越界错误?

时间:2017-07-31 10:12:26

标签: java excel file csv indexoutofboundsexception

到目前为止,我的程序一直很好。出于某种原因,尽管没有改变与下面的代码有关的任何事情,我收到了一个越​​界错误。所以基本上我的程序是从excel表中读取数据并将这些数据放入组合框中。例如,excel表数据是这样的:firstName,lastName,emailAddress,phoneNumber等。当我运行我的代码时," data [0]"被接受了,但是除此之外的任何事情都显然是出界的。尽管事实上它告诉我它已经超出范围,它仍然会读取数据并做它应该做的事情,为什么我会收到这个错误?

try {
                    br = new BufferedReader(new FileReader("Clients.csv"));
                } catch (FileNotFoundException e1) {
                    e1.printStackTrace();
                }
                String line = "";
                String cvsSplitBy = ",";
                String fullName = null;

                try {
                    br = new BufferedReader(new FileReader("Clients.csv"));
                    while ((line = br.readLine()) != null) {
                        String[] data = line.split(cvsSplitBy);
                        fullName = data[0]+" "+data[1];
                        comboBox_1.addItem(fullName);
                    }
                    br.close();

                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();

1 个答案:

答案 0 :(得分:0)

唯一可以抛出异常的行是fullName = data[0] + " " + data[1]。可能是您的line变量没有拆分符号。所以data数组只有1个元素。请尝试以下方法:

String[] data = line.split(cvsSplitBy);
fullName = data[0];
if(data.length > 1) {
    fullName += " " + data[1];
}