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
}
假设我有一个文本文件,我循环遍历其中的每一行。文本文件行如下所示:
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
}