Where/how 在循环中创建新对象

Where/how to create new object in loop

假设我有一个文本文件,我循环遍历其中的每一行。文本文件行如下所示:

1
2
3
4

1
2
3
4

1
2
3
4

我还有一个名为 DataHolder 的 class,我希望每个段都有一个新实例(其中一个段是第 1 2 3 4 行)。 DataHolder class 具有 1 2 3 和 4 的变量。当迭代器命中空白时,应为下一个 1 2 3 4 创建 DataHolder class 的新对象。

我怎样才能做到这一点?这就是我现在的

File theFile = new File(pathToFile);
try
{
    Scanner fileContent = new Scanner(theFile);
    DataHolder data = new DataHolder();
    while(fileContent.hasNextLine())
    {
        String line = fileContent.nextLine();
        if(line == "")
        {

        }
    }  
}
catch(Exception e)
{
    // ToDo
}

这个:

if(line == "")

不正确,因为您是在比较参考文献。你应该使用

if(line.equals(""))

然后您可以可靠地比较字符串,然后通过以下方式在循环中重新初始化您的 DataHolder 对象:

if(line.equals("")) {
   data = new DataHolder();
}

假设您需要存储 DataHolder 的集合,在这种情况下,您可以将其添加到此处的集合中。也许还调查 String.trim(),这样多个空格就不会破坏您的解析。

File theFile = new File(pathToFile);
try
{
    Scanner fileContent = new Scanner(theFile);
    List<DataHolder> dataList = new ArrayList<DataHolder>();
    List<String> stringList = new ArrayList<String>();
    while(fileContent.hasNextLine())
    {
        stringList.add(fileContent.nextLine());
        if(line.equals(""))
        {
            if (!stringList.isEmpty())
            dataList.add(new DataHolder(stringList));
            stringList.clear();

        }
    }  
}
catch(Exception e)
{
    // ToDo
}