java - 如何修复越界错误?

标签 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();

最佳答案

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

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

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

相关文章:

java - 如何在java中对日期进行排序

java - 如何递归求解 'classic' 背包算法?

excel - 从特定日期计算 12 个月前的日期

摘要页的 Excel 公式

linux - 如何检查/var/log/messages 中最近 10 小时的变化

ios - Angular 8 - 如何在 iOS 中下载文件

c# - 打开文件所在位置

java - 从 Java 调用 .NET Web 服务(WSE 2/3,WS-Security)

c# - 如何在工作簿 C# 中添加多个工作表

java - 我可以更新现有的 Amazon S3 对象吗?