文件中有姓名,分数两列,读取并按分数排序输出
2015-02-27 17:29
120 查看
20150227:
文件内容如下:
(最不需要思考的)代码如下:
View Code
文件内容如下:
张三,77 李四,89 王二,69 白龙,59 和尚,61 八戒,90 悟空,91 唐僧,0
(最不需要思考的)代码如下:
public static void main(String[] args) { //read File datas = new File("src\\test\\test\\records.txt"); BufferedReader reader =null; //sort list List<Map<String,String>> sorted = new ArrayList<Map<String,String>>(); try { reader = new BufferedReader(new FileReader(datas)); String tempLine = null; tempLine = reader.readLine(); while (tempLine!=null) { String[] recs = tempLine.split(","); Map<String,String> map = new HashMap<String,String>(); map.put("name", recs[0]); map.put("record", recs[1]); //comparing... and save if (sorted!=null&&sorted.size()>0) { //从大到小进行比较 int len = sorted.size(); for (int i = 0 ; i < len ; i++) { System.out.println(); Map<String,String> tmp_c = sorted.get(i); int bnum = compare(map.get("record"),tmp_c.get("record")); if ( bnum > 0 || bnum == 0) { //如果当前读取的值大于或等于序列为i的值 则将该值放到序列i上 sorted.add(i, map); break; } else if (i == (len-1)) { //当当前比较到最后一个已存值时,将该数据直接增加到排序列表 最后 sorted.add(map); } } } else { //当列表为空时 直接增加数据 sorted.add(map); } //read next line tempLine = reader.readLine(); } } catch (Exception e) { e.printStackTrace(); try { reader.close(); } catch (IOException io) { } return ; } //print for (Map<String,String> m:sorted) { System.out.println(m.get("name")+ "," + m.get("record")); } } private static int compare(String param1, String param2) { //比较传入值的数值大小,返回参数1对应数值 减去 参数2对应数值的值 return Integer.parseInt(param1) - Integer.parseInt(param2); }
View Code
相关文章推荐
- 输入N个学生的信息(包括:学号,姓名,5科成绩,总分),统计所有学生的总分,存入二进制文件stu_sc.dat中。然后读取该文件,查找总分最高的学生,并输出该生的所有信息。
- 学生管理系统(C++,控制台,文件读取,姓名排序)
- C语言——快速排序——从文件中读取结果输出到文件
- 定义一个学生结构体类型struct student,里边含有学号,姓名,分数,定义结构体数组struct student s[3],给数组赋初值后, 写入文件,然后通过lseek偏移到开头,然后再读取
- 读取一个文件然后将文件中的数据排序然后输出到另外一个文件中(冒泡排序)
- c#例题:输入学生的学号,姓名,分数,然后根据分数进行排序再输出最终结果。重点学习用结构体定义数组的表达方式
- 从文件中读取数据,排序之后输出到另一个文件中
- 读取文件中int数据并排序输出到另外一个文件
- 第十四周 项目2.3 带姓名的成绩单(从文件中读取数据然后经过成绩排序姓名排序处理)
- 从文件中读取数据,排序之后输出到另一个文件中
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- XSLT2.0 从外部读取信息并分析生成对应文件.采用xsl:for-each-group进行排序输出
- 文件中读取数字并排序输出到另一个文件中
- 用Properties读取配置文件后,使用TreeMap对keys进行排序
- flash动态读取xml输出的中文字会增加文件大小
- 从键盘输入4个学生的有关数据,然后把它们保存到磁盘文件中,最后从磁盘文件中读取数据输出到屏幕
- 读取文件内容输出到控制台方法
- C++ Demo 001: 读取一个从命令行指定的文件,输出文件内容到显示器,并且给每一行输出添加一个行号
- java读取文件输出流出现的问题
- 文件中有一组整数,要求排序后输出到另一个文件中