【发布时间】:2016-06-05 10:55:11
【问题描述】:
我有这样的问题。不幸的是,我无法编辑任何内容。
en_GB United States 2015-07-10 2015-08-30 mountains 5,400.20 USD
这是文本文件中的一行。我正在尝试为它准备扫描仪并基于它创建对象。这是我制作的内容以及我可以编辑的内容。
String lang;
String country;
Date[] dates; //contains two dates - arrival and departure
String place;
Double price;
String curr;
public TravelData(String lang, String countryIn, Date[] dateIn, String placeIn, Double priceIn, String currIn)
这就是我的构造函数的样子。我试图使用扫描仪和 next() 方法,但看起来它不适用于日期。在较小的部分上剪切这行文本的最佳方法是什么?
我的扫描仪不工作:)。
public void ReadOffers(File dataDir) throws FileNotFoundException{
TravelData travel;
for (final File fileEntry : dataDir.listFiles()) {
scan = new Scanner(fileEntry);
while(scan.hasNextLine()){
String l = scan.next();
String c = scan.next();
Date[] d = [Date.parse(scan.next()); Date.parse(scan.next())];
String pl = scan.next();
Double pr = Double.parseDouble(scan.next());
String cu = scan.next();
travel = new TravelData(l, c, d, pl, pr, cu);
travelList.add(travel);
}
}
}
【问题讨论】:
-
我会先检查字段是否从固定位置开始,这样可以方便处理
-
每个字段都由制表符分隔,但我只能访问三个示例。无论我想之间有多少个标签,它都应该工作。
-
我会要求制作人提供正式的文件规范。如果有不为人知的细节,你所有的努力都会很快化为乌有。
标签: java file split java.util.scanner