解析多行文件

时间:2016-09-13 08:49:04

标签: java

我要解析多行文件,结构如下:

Name Surname
birthdate(int)
Name Surname
birthdate(int)

等等。我打开文件,获取一个ArrayList,并创建了一个用作数据结构的类,但我不知道如何解析每个字符串,识别它是一个数字还是一个名字。你能救我吗?

2 个答案:

答案 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中添加该对象。

希望这有帮助。