【问题标题】:Better way to split my results from reading file?从读取文件中拆分结果的更好方法?
【发布时间】:2012-10-07 01:23:15
【问题描述】:

我有一个读取文件并将结果收集到数组列表中的函数。 数组列表长这样(数据)

[12, 亚当, 1993, 1234, 鲍勃, 1992]

然后我需要将这些详细信息加载到称为患者的新对象中。到目前为止,这是我将每个单独的数组列表项放入其自己的患者中的当前方法,但它一直困扰着我,说我正在传递 String String Int,它需要是一个 String。

看起来像这样

12,亚当,1993

这是代码

public void loadPatients()throws Exception
{
    ArrayList<String> data = IO_Support.readData("PatientData.txt");

    System.out.println(data);
    for(String s : data)
    {
        Sytem.out.println(s);
        patientList.add(new Patient(s));
    } 
}

有没有办法将我的数组列表结果推送到一个字符串中以传递给患者对象,或者我应该使用不同的方式来拆分字符串结果?

读取数据是这样的

public static ArrayList<String> readData(String fileName) throws Exception
{
    ArrayList<String> data = new ArrayList<String>();
    BufferedReader in = new BufferedReader(new FileReader(fileName));

    String temp = in.readLine(); 
    while (temp != null)
    {
        data.add(temp);
        temp = in.readLine();   
    }
    in.close();
    return data;
}

【问题讨论】:

  • 我在从 data 转换到可用的 s 数据时遇到问题。我希望,也许,将三个值从 data 传递给 Patient 的构造函数。

标签: java arrays arraylist split


【解决方案1】:
while (temp != null)
{
    temp = in.readLine();   
}

第一件事,你永远不会将你的输入添加到 ArrayList.. 这个 while 循环没有意义.. 它只是读取用户输入,并在每个场合吞下它..

另外,在看到您的异常后,可以确定您使用的是 Patient class1-arg constructor 不存在。@987654326 中只有 0-arg constructor2-arg constructor @class.. 你确实需要使用它们。

loadPatient 方法中查看此代码。您需要在您的Patient 类 中添加一个1-arg 构造函数 来编译它..

patientList.add(**new Patient(s)**); --> Will not work

因此,在您的 Patient 类中,添加: -

public Patient(String s) {
    this.s = s;
}

this.s 是存储您传递的s 的实例变量..

【讨论】:

  • 不一定正确,除非 OP 显示 IO_Support.readData(String) 方法,否则您不能只假设他将整数推送到同一个字符串列表中,他可能会将它们作为字符串推送
  • error saying I am passing in String String Int, and it needs to be a String. -- 这是错误.. 你从中发现了什么??
  • 我的错误。但是 OP 应该包含错误的堆栈跟踪以使其更加清晰。实际上,如果将整数推入字符串列表中,我认为程序不会编译
  • 完全错误是:没有找到适合的构造函数 Patient(java.lang.String) 构造函数 Patient.Patient(java.lang.String,java.lang.String,int) 不适用; (实际参数列表和形式参数列表长度不同)构造函数 Patient.Patient() 不适用(实际参数列表和形式参数列表长度不同)
  • 不看Patient类就很难分辨
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
相关资源
最近更新 更多