直接用了Collections.sort方法对arraylist进行了排序,主要实现了一个Comparator。也可以自己实现一个排序的方法。参考下吧,自己多写写比较好,没有处理异常,条件可以把异常处理一下。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class EasyEeee {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("H:/22.txt");
BufferedReader br=new BufferedReader(fr);
ArrayList
String b=null;
String[] bs=null;
int number=0;
Sutd stud=null;
while((b=br.readLine())!=null){
bs=b.trim().split(" ");
number=Integer.parseInt(bs[1].trim());
if(number>=0&&number<=100){
stud=new Sutd(number,b+" "+DengJi.getDengJi(number));
al.add(stud);
}else{
stud=new Sutd(number,b+" 成绩异常");
al.add(stud);
}
}
br.close();
fr.close();
Collections.sort(al,new myComparator());
FileWriter fw=new FileWriter("H:/23.txt");
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i
bw.write(stud.getEx());
bw.newLine();
System.out.println(stud.getEx());
}
bw.close();
fw.close();
}
}
class myComparator implements Comparator
public int compare(Sutd stud1,Sutd stud2){
if(stud1.getScore()>stud2.score){
return -1;
}else if(stud1.getScore()==stud2.score){
return 0;
}else{
return 1;
}
}
}
class Sutd{
int score;
String ex=null;
public Sutd(int score,String ex){
this.score=score;
this.ex=ex;
}
public int getScore(){
return score;
}
public String getEx(){
return ex;
}
}
class DengJi{
private static int[][] dj=new int[][]{{100,80},{79,70},{69,60},{59,50},{49,0}};
public static char getDengJi(int n){
for(int i=0;i
return (char)('A'+i);
}
}
return 'Z';
}
}
读excel很简单,如果是csv就更简单,用字符流直接读每一行,xls则用POI或者JXL框架读出。 评级先抽出一个小方法,传分数得级别代号, 读到每个单元格时, 成绩交给这个方法处理一下, 最后, 把结果保存到集合中。 关闭excel流后,再一次性写入文本文件。。
java引用jxl.jar可以操作Excel表格
范围好大啊,你自己会做什么自己先做一下,然后那个点不会再问那个点。
我不相信这个评级逻辑你做不了