gpt4 book ai didi

java - 在Java中分割和保存数据

转载 作者:行者123 更新时间:2023-12-01 17:01:32 25 4
gpt4 key购买 nike

我正在尝试读取数据文件并将不同的变量保存到数组列表中。

数据文件的格式看起来有点像这样

5003639MATH131410591
5003639CHEM434111644
5003639PSYC230110701

为了解决数据文件格式错误的问题,我向不同部分添加了逗号以进行拆分。创建的新文本文件看起来像这样

5,003639,MATH,1314,10591
5,003639,CHEM,4341,11644
5,003639,PSYC,2301,10701

创建该文件后,我尝试将信息保存到数组列表中。以下是尝试执行此操作的片段。

FileReader reader3 = new FileReader("example.txt");
BufferedReader br3 = new BufferedReader(reader3);
while ((strLine = br3.readLine())!=null){
String[] splitOut = strLine.split(", ");
if (splitOut.length == 5)
list.add(new Class(splitOut[0], splitOut[1], splitOut[2], splitOut[3], splitOut[4]));
}
br3.close();
System.out.println(list.get(0));

以下是它尝试保存到的结构

public static class Class{
public final String recordCode;
public final String institutionCode;
public final String subject;
public final String courseNum;
public final String sectionNum;

public Class(String rc, String ic, String sub, String cn, String sn){
recordCode = rc;
institutionCode = ic;
subject = sub;
courseNum = cn;
sectionNum = sn;
}
}

最后,我想打印出其中一个变量以查看它是否正常工作,但它给了我一个 IndexOutOfBoundsException。我想知道我是否可能错误地保存了信息,或者我是否试图错误地打印它?

最佳答案

您的分割定界符规范中有空格,但数据中没有空格。

String[] splitOut = strLine.split(", ");  // <-- notice the space?

这将产生一个长度仅为 1 的 splitOut 数组,而不是您期望的长度为 5 的数组。由于只有在看到长度为 5 时才添加到列表中,因此检查列表末尾的第 0 个元素将导致检查空列表的第一个元素,因此出现异常。

关于java - 在Java中分割和保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com