类库案例分析八
按照”姓名:年龄:成绩|姓名:年龄:成绩“的格式定义字符串“张三:21:98|李四:22: 89|王五:20:70",要求将每组值分别保存在Student对象之中,并对这些对象进行排序,排序的原则为:按照成绩由高到低排序,如果成绩相等,则按照年龄由低到高排序。
本程序最典型的做法是直接利用比较器来完成处理,如果不使用比较器也可以完成,相当于自己采用冒泡的方式进行排列,使用了比较器就可以利用Arrays类做处理。
package cn.mldn.demo;
import java.util.Arrays;
public class JavaAPIDemo {
public static void main(String[] args) {
String input = "张三:21:98|李四:22:89|王五:20:70";
String result[] = input.split("\\|");
Student student[] = new Student[result.length];
for (int x = 0; x < result.length; x++) {
String temp[] = result[x].split(":");
student[x] = new Student(temp[0], Integer.parseInt(temp[1]), Double.parseDouble(temp[2]));
}
Arrays.sort(student);
System.out.println(Arrays.toString(student));
}
}
class Student implements Comparable<Student> {
private String name;
private int age;
private double score;
public Student(String name, int age, double score) {
super();
this.name = name;
this.age = age;
this.score = score;
}
@Override
public int compareTo(Student stu) {
if (this.score < stu.score) {
return 1;
} else if (this.score > stu.score) {
return -1;
} else {
return this.age - stu.age;
}
}
@Override
public String toString() {
return "【学生信息】姓名" + this.name + "、年龄:" + this.age + "、成绩:" + this.score + "\n";
}
}
结构化字符串处理:“内容|内容|”,如果有复杂的情况内容里面可能再有其它标记。