Java 在何处/如何在循环中创建新对象
假设我有一个文本文件,我在其中的每一行循环。文本文件行如下所示:Java 在何处/如何在循环中创建新对象,java,loops,object,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的变量。当迭代器点击空白时,应为下一个1234创建DataHolder类的新对象 我怎样才能做到这一点?这就是我现在所拥有的 File theFile = new File(pathToFile); try { Scanner f
1
2
3
4
1
2
3
4
1
2
3
4
我还有一个名为DataHolder的类,我希望每个段都有一个新的实例(其中一个段是第1、2、3、4行)。DataHolder类有1、2、3和4的变量。当迭代器点击空白时,应为下一个1234创建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
}
这:
不正确,因为您正在比较引用。你应该使用
if(line.equals(""))
然后您可以可靠地比较字符串,然后通过以下方式重新初始化循环中的DataHolder对象:
if(line.equals("")) {
data = new 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
}
不正确,因为您正在比较引用。你应该使用
if(line.equals(""))
然后您可以可靠地比较字符串,然后通过以下方式重新初始化循环中的DataHolder对象:
if(line.equals("")) {
data = new DataHolder();
}
假设您需要存储一组数据持有者,在这种情况下,您可以将其添加到此处的集合中。也许还可以研究String.trim()
,这样多个空格就不会中断您的解析。File theFile=new File(pathToFile);
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
}
尝试
{
扫描仪文件内容=新扫描仪(文件);
List dataList=new ArrayList();
List stringList=新建ArrayList();
while(fileContent.hasNextLine())
{
添加(fileContent.nextLine());
if(第行等于(“”)
{
如果(!stringList.isEmpty())
添加(新数据持有者(stringList));
stringList.clear();
}
}
}
捕获(例外e)
{
//待办事项
}
File theFile=新文件(pathtfile);
尝试
{
扫描仪文件内容=新扫描仪(文件);
List dataList=new ArrayList();
List stringList=新建ArrayList();
while(fileContent.hasNextLine())
{
添加(fileContent.nextLine());
if(第行等于(“”)
{
如果(!stringList.isEmpty())
添加(新数据持有者(stringList));
stringList.clear();
}
}
}
捕获(例外e)
{
//待办事项
}
阅读每一行。如果值不为空,请将值存储到列表中。当您点击空白处时,创建从列表中提取值的数据持有者。然后清除列表并重复newdataholder()
实例化一个新对象。您可以在循环内部和外部执行这样的操作。当然,您需要对新实例做一些事情(将其分配给一个变量,将其放入一个集合中,…)以使其发挥任何作用。如果值不为空,请将值存储到列表中。当您点击空白处时,创建从列表中提取值的数据持有者。然后清除列表并重复newdataholder()
实例化一个新对象。您可以在循环内部和外部执行这样的操作。当然,您需要对新实例做一些事情(将其分配给一个变量,将其放入一个集合中,…)以使其发挥任何作用。这并没有设置DataHolder中的变量It’s not’s required(尽管代码中缺少该部分),这似乎就是他们所要求的:DataHolder类有1234的变量。
然后应该为下一个1234创建DataHolder类。
这只提供了部分答案。这并没有设置DataHolder中的变量It’s not what's required(尽管代码中缺少该部分),这似乎就是他们所问的:DataHolder类有1234的变量。
然后应该为下一个1234创建DataHolder类。
虽然Brian的答案很好,这是完整的代码段。只需一个小注释,您就可以关闭资源。虽然Brian的回答很好,但这是完整的代码段。只需一个小注释,您就可以关闭资源。