我需要编写一个 Java 程序,可以从包含学生姓名和成绩的文件中读取数据。我必须找到每个学生的最高成绩,然后将他的名字和最高成绩写入一个新文件中。我已经能够做到这一点。问题是,学生应该根据他们的最高成绩按降序打印,但我不知道如何做到这一点。你能帮我吗?谢谢!
public class NotaMax {
public static void main(String args[]) throws FileNotFoundException{
Scanner input=new Scanner(new File("teksti.txt"));
PrintStream output=new PrintStream(new File("max.txt"));
while(input.hasNextLine()) {
String rreshti=input.nextLine();
max(rreshti,output);
}
}
public static void max(String text,PrintStream output) {
Scanner data=new Scanner(text);
String emri=data.next();
double max=0;
while(data.hasNext()) {
double nota=data.nextDouble();
if(nota>max) {
max=nota;
}
}
output.println(""+emri+":"+max);
}
}
最佳答案
有两种方法可以实现此目的,一种是填充另一种。
您可以将它们保存在 ArrayList
中,然后调用 Array#reverse
方法,这样它将反转 ArrayList
。为了增加另一层确定性,最好创建一个名为 Student
的 Object
/Class
并应用一个 Comparator
ArrayList
的 #sort
方法以确保结果。
然而,这比解决这个问题的最简单、最有效的方法需要更多的步骤。
你能做的最好的事情就是将Student Object
保存在ArrayList
(或HashSet
,实际上是任何Comparable Collection/Map
)并使用#sort
方法将其从下到上排序。
我可以(如果需要)为此提供一些代码。
关于java - java 以降序打印文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50701755/