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);
     }
    }

四、测试结果截图

五、码云链接

码云链接

猜你喜欢

转载自www.cnblogs.com/fzlzc/p/10889479.html
今日推荐