实现程序:数据排序处理
package day20_javaIO_Demo; import java.util.Arrays; /* * 数据排序处理 * 从键盘输入以下数据:“TOM:89|JERRY:90|TONY:95”,数据格式为姓名:成绩|姓名:成绩 *输入内容按成绩进行排序,并将排序结果按照成绩由高到低排序 *对于 排序的处理使用Comparable接口完成,同时利用Arrays类处理 *要求数据需要通过键盘输入 */ //建立Student的程序类,并且进行排序规则的配置 class Student implements Comparable <Student>{ private String name ; private double score ; public Student () {} public Student (String name , double score) { this.name = name ; this.score = score ; } @Override public String toString() { return "姓名:"+this.name + "成绩:"+ this.score; } @Override public int compareTo(Student obj) { if (this.score > obj.score) { return -1 ; }else if (this.score < obj.score) { return 1 ; }else { return 0 ; } } } //建立数据的输入处理操作(数据拆分) interface IStudentService { public Student [] getData () ; //获取排序后的数据 } //建立实现IStudentService 子类 class StudentServiceImpl implements IStudentService { private String content ; private Student [] students ; public StudentServiceImpl () {} public StudentServiceImpl(String content) { this.content = content ; this.handle(); } private void handle () { //进行字符串数据的处理操作 String result [] = this.content.split("\\|") ; //数据拆分 this.students = new Student [result.length] ; for (int i = 0; i < this.students.length; i++) { String temp [] = result [i].split(":") ; this.students [i] = new Student(temp [0],Double.parseDouble(temp [1])) ; } } @Override public Student[] getData() { Arrays.sort(this.students); return this.students; } } //定义工厂类 class FactoryNSort { private FactoryNSort () {} public static IStudentService getInstance () { return new StudentServiceImpl(StringUtil.getString("请输入数据信息 :")) ; } } //编写测试类 public class java_NumberSort { public static void main(String[] args) { System.out.println(Arrays.toString(FactoryNSort.getInstance().getData())); //返回排序后的结果 } }
本程序用到的StringUtil类中的getString参考另一篇博客中的类,访问地址:https://blog.youkuaiyun.com/qq_41663470/article/details/114231889