使用循环添加到类

时间:2014-10-22 01:38:02

标签: java class loops

我正在开展一个项目,涉及从文本文件中读取数据并将其存储为新类。为了轻松完成所有工作,我认为最好使用如下的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
  
}

我所拥有的文本文件有很多行,这些变量按顺序列出。我需要阅读该行,将其拆分为部分,将其存储为新客户,然后冲洗并重复直到文件末尾。

2 个答案:

答案 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;
}

有更有效的方法,取决于你想要如何获得文件中的行数,你想用这些行做什么和什么,以及你想要用于第二次阅读的方法。但是,这应该可以让您了解如何撰写自定义解决方案。