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