1

假设我有一个如下所示的文本文件:

"CarInLot KLM456 ND Meter4 120

 CarInLot VMK123 ME Moving 0

 CarInLot DKC003 WA Meter5 30

 Meter1 None 10

 Meter2 None 0

 Meter3 None 2

 Meter4 Yes 12"

然后我用

while (inputFile.hasNext())
  {
     // Read the next name.
     String friendName = inputFile.nextLine();

     String[] tokens = friendName.split(" ");
  }

拆分它,但我希望这些行以 Car 类中的 CarInLot 开头,而这些行以 Meter 类中的 Meter 开头。我怎样才能做到这一点?谢谢你。

4

2 回答 2

1

在您的 while 循环中,遍历标记并执行以下操作:

if (token[0].equals("CarInLot"))
{
    // do something

    // e.g. storing the variables
    // store token[i+1]
    // store token[i+2]
    // Etc..
} else if (token[0].equals("Meter"))
{
    // do something

    // e.g. storing the variables
    // store token[i+1]
    // store token[i+2]
    // Etc..
}

您可以将值存储在一个ArrayList或只是一个(2D?)array或类似的东西......

于 2013-09-29T21:46:24.710 回答
0

为每个接受每条数据作为参数的对象创建构造函数。然后检查 的第一个索引[]以确定要创建的对象类型。创建对象并将它们添加到List适当类型的 a 中。

List<Meter> meters = new ArrayList<Meter>();
List<Car> cars = new ArrayList<Car>();

while (inputFile.hasNext())
{   
     String[] tokens = inputFile.nextLine().split(" ");

     if(tokens[0].equals("CarInLot")){
        cars.add(new Car(tokens[1], tokens[2], tokens[3], tokens[4]));
     }else if(tokens[0].equals("Meter")){
        meters.add(new Meter(tokens[1], tokens[2]));
     }
}
于 2013-09-29T21:50:25.870 回答