【发布时间】:2015-04-30 09:09:55
【问题描述】:
我必须为具有这种形式的税收计算器解析一个 txt 文件:
Name: Mary Jane
Age: 23
Status: Married
Receipts:
Id: 1
Place: Restaurant
Money Spent: 20
Id: 2
Place: Mall
Money Spent: 30
所以,到目前为止我所做的是:
public void read(File file) throws FileNotFoundException{
Scanner scanner = new Scanner(file);
String[] tokens = null;
while(scanner.hasNext()){
String line= scanner.nextLine();
tokens = line.split(":");
String lastToken = tokens[tokens.length - 1];
System.out.println(lastToken);
所以,我只想访问该文件的第二列(Mary Jane,23 岁,已婚)到一个班级纳税人(姓名、年龄、状态),并将收据信息访问到一个 Arraylist。
我想把最后一个标记保存到字符串数组中,但我不能这样做,因为我不能将字符串保存到字符串数组中。有人能帮我吗?谢谢。
【问题讨论】:
-
为什么不能保存到
String数组中?是要求吗?您可以使用ìndexOf(':')定位冒号字符(或空格),然后使用substring()提取您想要的部分。 -
不,字符串数组不是必需的,我只是想到了这一点。如果我使用
ìndexOf(':'),我如何才能获得正确的部分。例如,在Name: Mary Jane行中,我只想要玛丽珍,然后将其放入纳税人的构造函数中,与其他字段相同。我应该逐行处理吗? -
int pos = line.indexOf(':'); String lastToken = line.substring(pos+1).trim();假设只有一个冒号:。