没有啊 我干脆手工直接打上来- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.TreeSet;
- public class StirngDemo {
- public static void main(String[] args) {
- // 想读多少都可以,键盘输入格式 名字,成绩,成绩,成绩(注意逗号小写)
- try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- BufferedWriter bw = new BufferedWriter(new FileWriter("e:\\stu.txt"))) {
- String str = null;
- // 建立规则从高分到低分
- TreeSet<Student> ts = new TreeSet<>((o1, o2) -> o2.sub() - o1.sub());
- while ((str = br.readLine()) != null) {
- if (str.equals("over"))
- break;
- String[] s = str.split(",");
- // 学生对象已new好存入集合中进行排序
- Student xue = new Student(s[0], Integer.parseInt(s[1]), Integer.parseInt(s[2]), Integer.parseInt(s[3]));
- ts.add(xue);
- }
- bw.write("姓名\t数学\t语文\t英语");
- bw.flush();
- bw.newLine();
- // 执行打印
- for (Student student : ts) {
- bw.write(student.getName()+"\t"+student.getShu()+"\t"+student.getYu()+"\t"+student.getYing());
- bw.newLine();
- bw.flush();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- //学生对象,把名字各科成绩总分变成属性,给予总分方法
- class Student {
- private String name;
- private int shu, yu, ying;
- public String getName() {
- return name;
- }
- public Student(String name, int shu, int yu, int ying) {
- this.name = name;
- this.shu = shu;
- this.yu = yu;
- this.ying = ying;
- }
- public int getShu() {
- return shu;
- }
- public int getYu() {
- return yu;
- }
- public int getYing() {
- return ying;
- }
- public int sub() {
- return shu + ying + yu;
- }
- }
复制代码 |