Day09

import java.util.Arrays;
public class text5 {
    public static void main(String[] args) {
        String s =   "张三:上机成绩=90,笔试成绩=78;"
                    + "李四:上机成绩=68,笔试成绩=98;"
                    + "王五:上机成绩=48,笔试成绩=58;"
                    + "赵六:上机成绩=55,笔试成绩=11;"
                    + "jim:上机成绩=44,笔试成绩=55;"
                    + "tom:上机成绩=22,笔试成绩=55;";
        String [] str = s.split(";");
        Demo5 [] stu = new Demo5[str.length];
        for (int i = 0; i < str.length; i++) {
            String s1 = str[i];
            String name = s1.substring(0,s1.indexOf(":"));
            //Integer.parseInt 方法的作用, 就是从字符串转换成一个10进制的整数
            //s1.indexOf(",")第一个,的下标
            //public String substring(int beginIndex)返回一个字符串,该字符串是此字符串的子字符串。
            int m = Integer.parseInt(s1.substring(s1.indexOf("=") + 1, s1.indexOf(",")));
            int n = Integer.parseInt(s1.substring(s1.lastIndexOf("=")+1));
            int sum = m+n;
            Demo5 student =new Demo5(name,m,n,sum);
            stu[i] = student;
        }
        System.out.println("按总分升序排序:");
        Arrays.sort(stu);
        System.out.println(Arrays.toString(stu));
    }
}
public class Demo5 implements Comparable<Demo5> {
    private String name;
    private int m;//上机成绩
    private int n;//笔试成绩
    private int sum;//总成绩
    public Demo5()
    {

    }
    public Demo5(String name,int m,int n,int sum)
    {
        this.name = name;
        this.m = m;
        this.n = n;
        this.sum = sum;
    }
    /*
    *  if (length < INSERTIONSORT_THRESHOLD) {
            for (int i=low; i<high; i++)
                for (int j=i; j>low &&
                         ((Comparable) dest[j-1]).compareTo(dest[j])>0; j--)
                    swap(dest, j, j-1);
            return;*/
    @Override
    public int compareTo(Demo5 o) {
        return o.sum-this.sum;//>0是升序 <0 是降序 this.sum 是dest[j-1]
    }
    @Override
    public String toString() {
        return "Student{" +
                "姓名='" + name +
                ", 上机成绩=" + m +
                ", 笔试成绩=" + n +
                ", 总分=" + sum +
                "}\n";
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getM() {
        return m;
    }
    public void setM(int m) {
        this.m = m;
    }

    public int getN() {
        return n;
    }

    public void setN(int n) {
        this.n = n;
    }

    public int getSum() {
        return sum;
    }

    public void setSum(int sum) {
        this.sum = sum;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值