目录
题目:
代码展示:
Student类
TestStudent类
运行结果
编辑
题目:
给定一段字符串,里面包含若干个学生上机和笔试成绩如
String str = "张三:上机成绩=90,笔试成绩=78;
李四:上机成绩=68,笔试成绩=98;
王五:上机成绩=48,笔试成绩=58;
赵六:上机成绩=55,笔试成绩=11;
jim:上机成绩=44,笔试成绩=55;
tom:上机成绩=22,笔试成绩=55";
要求:
按照总分进行升序显示输出
代码展示:
Student类
学生姓名,上机成绩,笔试成绩 属性
计算成绩总分 构造方法
改写toString()方法 compareTo()方法
package com.ffyc.javaapi.zy.zy2.T5;public class Student implements Comparable<Student>{private String name;private int sjGrade;private int bsGrade;public Student(String name, int sjGrade, int bsGrade) {this.name = name;this.sjGrade = sjGrade;this.bsGrade = bsGrade;}public int Grade(){int zfGrade = this.sjGrade + this.bsGrade;return zfGrade;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", sjGrade=" + sjGrade +", bsGrade=" + bsGrade +'}';}@Overridepublic int compareTo(Student o) {//降序//return o.Grade() - this.Grade();//升序return this.Grade() - o.Grade();}
}
TestStudent类
package com.ffyc.javaapi.zy.zy2.T5;import java.util.Arrays;public class TestStudent {public static void main(String[] args) {//String类型字符串存储学生各项信息String str = "张三:上机成绩=90,笔试成绩=78;"+"李四:上机成绩=68,笔试成绩=98;"+"王五:上机成绩=48,笔试成绩=58;"+"赵六:上机成绩=55,笔试成绩=11;"+"jim:上机成绩=44,笔试成绩=55;"+"tom:上机成绩=22,笔试成绩=55";//String[]类型数组,通过spilt()方法将学生信息分割String[] strings = str.split(";");//Student[]类型数组存储学生各项信息Student[] students = new Student[strings.length];//通过循环,将学生信息存储到students数组中for (int i = 0;i<strings.length;i++){String s = strings[i];//substring()截取指定位置信息 indexOf()查找指定元素在字符串中的位置 lastIndexOf()从后查找指定元素在字符串中的位置String name = s.substring(0, s.indexOf(":"));String sjGrade = s.substring(s.indexOf("=")+1, s.indexOf(","));String bsGrade = s.substring(s.lastIndexOf("=")+1);//new 学生对象Student student = new Student(name,Integer.parseInt(sjGrade),Integer.parseInt(bsGrade));students[i] = student;}//通过改写后的sort()方法对学生信息进行升序排序Arrays.sort(students);System.out.println(Arrays.toString(students));}
}