假设我有一个文本文件,如下所示:
"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开头。 我怎样才能做到这一点?谢谢。
答案 0 :(得分: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
或类似内容......
答案 1 :(得分:0)
为每个接受每个数据作为参数的对象创建构造函数。然后检查[]
的第一个索引以确定要创建的对象类型。创建对象并将其添加到相应类型的List
。
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]));
}
}