一、题目要求
- 模拟实现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); } }