我要解析多行文件,结构如下:
Name Surname
birthdate(int)
Name Surname
birthdate(int)
等等。我打开文件,获取一个ArrayList,并创建了一个用作数据结构的类,但我不知道如何解析每个字符串,识别它是一个数字还是一个名字。你能救我吗?
答案 0 :(得分:0)
我想,这是主要关注点:
我不知道如何解析每个字符串,识别它是否是一个数字 或者名字。
使用isNumeric()
函数查看您是否可以将值解析为数字或将其保留为字符串。然后解析它就会使函数返回值。
public static boolean isNumeric(String str) {
try {
double d = Double.parseDouble(str);
} catch(NumberFormatException nfe) {
return false;
}
return true;
}
...
//put data into ArrayList
for (int i = 0; i < data.size(); i++) {
String elem = data.get(i);
boolean isNum = isNumeric(elem);
if (isNum) {
int val = Integer.parseInt(elem);
} else {
//do what you want with `elem`
}
}
答案 1 :(得分:0)
您可以使用java.util.Scanner课程来阅读您的文件
如果您知道输入数据的结构(我假设您知道它的结构),它有辅助方法来读取各种类型的输入
下面是一个示例代码,可帮助您从具有给定结构的文件中读取它
Scanner s = new Scanner(new File("input.txt"));
while(s.hasNext()) {
System.out.println("First Name : " + s.next() + ", Last Name : " + s.next() + ", Age : " +s.nextInt());
}
s.close();
您可以创建一个具有firstName,lastName和age属性的类,并将上述值分配给新对象,并在List中添加该对象。
希望这有帮助。