**题目目标:
main 方法的第一个参数是文件名。
指定文件的每个行包含下列各式:
名称 月 日 年
其中,[姓名] 是 String,可以包含空格分隔的数个字词。
[月] 为 int,[日] 为 int,[年] 为 int。
数据由空格分隔。
使用文件数据填写 PEOPLE 列表。
关闭流。
示例输入文件:
约翰 杰克 约翰逊 12 31 1987
文森特 5 15 2013
要求:
Solution 类必须包含名为 PEOPLE 的 public List constant,必须对其立即初始化。
程序不得从控制台读取数据。
程序必须读取文件内容(使用 FileReader)。
必须关闭文件输入流 (FileReader)。
程序必须使用文件中的数据填写 PEOPLE 列表。
程序应正确处理带连字符的名称,例如 Mary-Jo。**
解答方式实例:
import java.io.BufferedReader;
import java.io.FileReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
/*
约翰 约翰逊
*/
public class Solution {
public static final List<Person> PEOPLE = new ArrayList<>();
public static void main(String[] args) throws Exception {
FileReader fis = new FileReader(args[0]);
BufferedReader file = new BufferedReader(fis);
while (file.ready()) {
String line = file.readLine();
String name = line.replaceAll("[0-9]", "").trim();
String date = line.replaceAll("[^0-9 ]", "").trim();
PEOPLE.add(new Person(name, new SimpleDateFormat("MM dd yyyy").parse(date)));
}
file.close();
}
}
class Person {
private String name;
private Date birthDate;
public Person(String name, Date birthDate) {
this.name = name;
this.birthDate = birthDate;
}
public String getName() {
return name;
}
public Date getBirthDate() {
return birthDate;
}
}