模拟实现Linux下Sort -t : -k 2的功能java
要有伪代码,产品代码,测试代码(注意测试用例的设计)数组
import java.util.*; public class MySort1 { 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"}; System.out.println("Before sort:"); for (String str: toSort) System.out.println(str); Arrays.sort(toSort); System.out.println("After sort:"); for( String str : toSort) System.out.println(str); } }
public String[] split(String regex)
:一个String类的数组以regex传入的分隔符为标准,对字符串进行分隔,使用时分隔符要放在双括号中将tosort数组以第二列数值大小为标准从小到大排列: 新建数组a,长度与tosort数据长度相同 调用split函数将tosort数组以:(冒号)为分隔符分红小字符串 将每个tosort元素的第二例数值存入数组a中 调用Arrays类的sort函数对a进行排序 使用嵌套循环输出排序后的结果
package week12; import java.util.*; import java.lang.Integer; public class MySort{ 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"}; System.out.println("Before sort:"); for (String str: toSort) System.out.println(str); int [] a = new int[toSort.length]; for (int i = 0; i < toSort.length; i++){ String [] tmp = toSort[i].split(":"); a[i] = Integer.parseInt(tmp[1]); } Arrays.sort(a); System.out.println("After sort:"); for (int i = 0; i < a.length; i++) for (int j = 0; j < toSort.length; j++) if (a[i] == Integer.parseInt((toSort[j].split(":"))[1])) System.out.println(toSort[j]); } }