阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第14章:类库使用案例分析:课时66:学生信息比较

类库案例分析八

按照”姓名:年龄:成绩|姓名:年龄:成绩“的格式定义字符串“张三: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";
    }
}

结构化字符串处理:“内容|内容|”,如果有复杂的情况内容里面可能再有其它标记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值