gpt4 book ai didi

java - 将文件读取到具有多种数据类型的数组列表

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

我在从文本文件读取到数组列表时遇到问题。问题是我不知道如何读取多种类型,因为在我的数组列表中有点、字符串、 boolean 值,因此 linesplit 不起作用。我检查了所有主题,但没有找到解决方案。

编辑:Elrendezes 类看起来像

  class Elrendezes {
protected Point Po;
protected String hely;
protected String foglalo;
protected boolean foglalt;
}

这是我的文件的样子:

 java.awt.Point[x=16,y=13], 1, name1, false

读取方法是

public static ArrayList<Elrendezes> readDataFromFile(){
ArrayList<Elrendezes> ElrList = new ArrayList<Elrendezes>();
FileInputStream fstream = null;
try
{
fstream = new FileInputStream("src/files/DataFile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine = null ;
String tokens[] = strLine.split(", ");


while ((strLine = br.readLine()) != null) {
tokens = strLine.split(", ");
// THIS DOES NOT WORK: ElrList.add(new Elrendezes(tokens[0], tokens[1], tokens[2], tokens[3]));
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try { fstream.close(); } catch ( Exception ignore ) {}
}
return ElrList;

}

最佳答案

由于您可能不知道正则表达式,我将使用:

  1. 获取xy:

    int v1 = strLine.indexOf("x=");
    int v2 = strLine.indexOf(",y=");
    int v3 = strLine.indexOf("]") ;
    string x = strLine.substring(v1 +2, v2);
    string y = strLine.substring(v2 +3, v3);
  2. 与其余部分的断点表示。

    string secondpart = strLine.substring(v3+1);
  3. 现在仅使用逗号作为分隔符来中断 secondpart
  4. 使用 Integer.parseInt() 转换字符串表示形式等等..

  5. 构造你的对象。

注意:写得比较仓促,请检查一下x、y和第二部分使用的索引是否正确。我还假设输入是正确的。

关于java - 将文件读取到具有多种数据类型的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565814/

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