问题
编程题:班级共有50位同学,依次输入每位同学的姓名和生日。姓名中不含有空格,生日的输入格式yyyy/mm/dd(yyyy代表出生年,mm代表出生月,dd代表出生日)。按照年龄从大到小的顺序输出每位同学的姓名,每个名字占一行。
例如:输入“李强 1995/08/15”,输出“李强…”。
分析
利用面向对象设计Student类
Java实现
Student类
static class Student{
String name;
Integer birth;
public Student(String name,Integer birth){
this.birth = birth;
this.name = name;
}
}
public static void test07(){
List<Student> studentList = new ArrayList<>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
String s = sc.nextLine();
String[] strings = s.split(" ");
studentList.add(new Student(strings[0],Integer.parseInt(strings[1].replace("/",""))));
}
for (int i = 0; i < studentList.size(); i++) {
for (int j = i+1; j < studentList.size() ; j++) {
if (studentList.get(i).birth > studentList.get(j).birth){
Student s = studentList.get(i);
studentList.set(i,studentList.get(j));
studentList.set(j,s);
}
}
}
for (Student s: studentList) {
System.out.println(s.name);
}
}