20155213 第十二周课堂作业MySort

20155213 第十二周课堂作业MySort

作业要求

  1. 模拟实现Linux下Sort -t : -k 2的功能
  2. 参考 Sort的实现
  3. 提交码云链接和代码运行截图
  4. 初始代码
1 import java.util.*;
  2
  3 public class MySort1 {
  4     public static void main(String [] args) {
  5         String [] toSort = {"aaa:10:1:1",
  6                             "ccc:30:3:4",
  7                             "bbb:50:4:5",
  8                             "ddd:20:5:3",
  9                             "eee:40:2:20"};
 10
 11         System.out.println("Before sort:");
 12         for (String str: toSort)
 13                     System.out.println(str);
 14
 15         Arrays.sort(toSort);
 16
 17         System.out.println("After sort:");
 18         for( String str : toSort)
 19             System.out.println(str);
 20     }
 21 }

作业实现

  • 出现的问题

    • String.split用法不当,导致编译出错
  • 问题的解决以及原因

    • 将a设成字符串数组型String[] a;
    • 原因:String.split的返回值是字符串数组,所以需要用数组来接受
    • 而对于已经是字符串数组使用String.split,得到的则是一个二位字符串数组
    • 可以这样来看Integer.parseInt(toSort[j].split(":")[3])这的意思是取toSort字符串数组的地j+1项字符串以为界限,分成其他几个数组,然后取第四个字符串的值,在将该值转化成int型数字;
  • 作业截图

作业题拓展

  • 如何在命令行输入下Java实现Linux上的sort命令
    • 了解Linux下的sort命令
      1. sort将文件的每一行作为一个单位,进行比较,比较原则是从首字符向后,依次按ASCII码值进行比较;
      2. sort指令 作用

|sort的-u选项|在输出行中去除重复行|
|sort的-r选项|将sort改成降序|
|sort的-n选项|按数字大小比较|
|sort的-t选项和-k选项|-t用来设置间隔符,-k用来设置第几列|

  - 实现 ,直接通过读取args的输入指令,对第几列,按升序或者降序输出

作业体会

  • 课堂上没能提交,感觉提惭愧的,毕竟别人都能按时提交,为什么我不行呢,我总结了几个原因
    1. 第一个也是最主要的问题就是课堂上注意力不集中,容易开小差,没能跟上老师讲课的节奏,导致做随堂作业的时候打不动就卡壳;
    2. 课前没能花足够的时间准备,没有好好学习老师布置的课前预习
    3. 还有就是水印问题,截好了图,但没能及时绘上水印;
    4. 之前对Java学习重视,加上长时间的“积贫积弱”,导致代码编写速度跟不上,找错经验不足,浪费了不少时间
  • 我觉得学习这东西再迟也不算迟,更何况之前也不是一点没学,而现在就是重新重视起Java学习,而学习语言这东西就在于多实践,多动手敲代码
  • 改正一下,就是课前花时间多做准备,课上认真听讲的同时网上查阅不懂的知识点,保证课堂上能够多多的消化,课后做一些课堂上留下的问题的后期思考与实现
  • 水印的问题,如果老师看了我的博客,可否考虑一下我的建议,就是如果最后没足够的时间添加水印,可否代码的最后一段输出自己的学号,作为身份的证明System.out.println(2015××××);

码云链接

参考网页

linux下的sort
Arrays.Sort

posted on 2017-05-10 10:42  20155213陆忠民  阅读(138)  评论(1编辑  收藏  举报