何处/如何在循环中创建新对象

时间:2015-02-04 20:11:01

标签: java loops object

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

1
2
3
4

1
2
3
4

1
2
3
4

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

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

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
}

2 个答案:

答案 0 :(得分:3)

此:

if(line == "")

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

if(line.equals(""))

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

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

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

答案 1 :(得分:3)

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
}