模擬實現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]); } }