我有一个字符串数组,其值分别为[“ 1.123.4”,“ 5.12.6”,“ 1.123.2”]。我想将该数组排序为[“ 1.123.2”,“ 1.123.4”, “ 5.12.6”]。我尝试拆分和排序,但没有锻炼。有人可以帮助我解决此问题吗?
创建一个Comperator以所需的方式实现比较操作,然后使用该操作对数组进行排序。读者可以自己进行修改以将字符串更改为数字以进行数字比较。]
/* assume "01" is not the same as "1" */ public class VersionComparator implements Comparator<String> { @Override int compare(String a, String b) { String[] aparts = a.split("\\."); String[] bparts = b.split("\\."); if( a.compareTo(b) == 0) { // a and b are exactly the same. return 0; } for( int i = 0; i < aparts.length; i++) { if( bparts.length < i) { // a has more elements; previous parts equal. // a is bigger. return 1; } if( aparts[i].compareTo(bparts[i]) != 0) { // a and b are not equal in this segment; standard compare works. return aparts[i].compareTo(bparts[i]); } // same so far ... check the next segment. } // b has more elements than a but is otherwise the same. // b is bigger. return -1; } }
现在,将其传递给
Arrays.sort()
方法。
Arrays.sort()