20175214 MySort(选做)

一、题目要求

  • 模拟实现Linux下Sort -t : -k 2的功能。
  • 要有伪代码,产品代码,测试代码(注意测试用例的设计)
  • 参考 Sort的实现。提交博客链接。

二、设计思路

  • 在命令行中输入需要的参数;
  • 使用split方法将每一行分解获得需要的可供排序的数组;
  • 对获得的数组排序;
  • 将排序后的数组输出。

三、代码实现

  • 伪代码:

    • 输出排序前的数组;
    • 命令行输入参数;
    • 判断参数是否符合要求;
    • 对排序好的数组遍历并输出第二列元素相同的toSort数组。
  • 产品代码:

    import java.util.*;
    public class MySort {
     public void mySort(String[] toSort, int k) {
         System.out.println("Before sort:");
         for (String str : toSort) {
             System.out.println(str);
         }
         int length = toSort.length;
         int[] a = new int[length];
         if (k == 1) {
             for (int i = 0; i < length; i++) {
                 a[i] = Integer.parseInt(toSort[i].split(":")[k]);
             }
         }
         Arrays.sort(a);
         System.out.println("After sort:");
         for (int i = 0; i < length; i++) {
             for (int j = 0; j < length; j++) {
                 if (a[i] == Integer.parseInt(toSort[j].split(":")[k])) {
                     System.out.println(toSort[j]);
                 }
             }
         }
     }
    

}


- 测试代码:
   

public class MySortTest {
public static void main(String[] args) {
String[] toSort = {"aaa:10:1:1",
"ccc:30:3:4",
"bbb:50:4:5",
"ddd:20:5:3",
"eee:40:2:20"};
int a = Integer.parseInt(args[0]);
MySort mysort = new MySort();
mysort.mySort(toSort, a);
}
}


## 四、测试结果截图
![](https://img2018.cnblogs.com/blog/1592121/201905/1592121-20190519154155074-1884191996.png)

## 五、码云链接

[码云链接](https://gitee.com/fzlzc/java2019/commit/fe575839f2f213be22e4964de9f46d81e5809c37)
posted @ 2019-05-19 15:43  20175214lzc  阅读(140)  评论(0编辑  收藏  举报