我正在开展一个项目,涉及从文本文件中读取数据并将其存储为新类。为了轻松完成所有工作,我认为最好使用如下的while循环:
while (text.hasNextLine()) {
System.out.print("Please enter class name: ");
tempName = kb.next();
//sort text into parts for the class
Class (tempName?) = new Class();
}
kb是Scanner,tempName是String变量。
这样的代码会起作用吗?我想我不能只是去“Class name = new Class”,因为每次循环运行时,它都会覆盖以前的数据,因为我需要存储所有数据。如果我能把它变成“Class name(x)= new Class”会更好,其中x是一个int变量,每次循环运行时都会增加,但我不确定这是否也可以。
如果不起作用,我们将不胜感激。我也不确定如何验证类名,以免数据被意外覆盖。
请注意:我不能使用ArrayList,因为项目的说明禁止使用“arraylists等动态数据结构”,所以我可以使用基本的Java代码。
编辑:这是我必须使用的课程之一。
public class Customer_16997761 {
private int customerID;
private String surname;
private String firstname;
private String address;
private String suburb;
private int postcode;
//Bunch of get methods
}
我所拥有的文本文件有很多行,这些变量按顺序列出。我需要阅读该行,将其拆分为部分,将其存储为新客户,然后冲洗并重复直到文件末尾。
答案 0 :(得分:0)
您的解决方案无法正常工作,但您可以在每次迭代时创建一个新的java文件,在文件中可以将文本放入类定义中。因此,您可以将文件命名为tempname.java,并在文件中设置公共类tempname {}。希望这会有所帮助。
答案 1 :(得分:0)
我无法想象任何项目/任务会要求最终用户决定变量的名称,我将在假设下回答问题:项目需要班级(你创造了一个名为" name"并让用户操纵它。
public class Foo() {
String name;
//other stuff
//Contstructor makes it easy
Foo(String _name) {
name = _name;
}
}
然后在您的代码中,您可以执行以下操作: int counter = 0;
while (text.hasNextLine()) {
++counter;
}
Foo[] myFoos;
myFoos = new Foo[counter];
开始阅读:
int i = 0;
while(text.hasNextLine()) {
System.out.print("Please enter class name: ");
tempName = kb.next();
//sort text into parts for the class
Foo[i] = new Foo(tempName);
++i;
}
有更有效的方法,取决于你想要如何获得文件中的行数,你想用这些行做什么和什么,以及你想要用于第二次阅读的方法。但是,这应该可以让您了解如何撰写自定义解决方案。