2 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
public class Main {
public static void main(String[] args) {
String [] pngs = {"18.png","43.png", "27.png", "62.png", "71.png","34.png", "55.png", "86.png"};
//this will sort by cheapest first
java.util.Arrays.sort(pngs);
printArray(pngs);
//to sort by lowest rank first, swap digits, sort, re-swap digits
swapFirstTwoDigits(pngs);
java.util.Arrays.sort(pngs);
swapFirstTwoDigits(pngs);
printArray(pngs);
//to sort by highest rank first, swap digits, sort, re-swap digits
swapFirstTwoDigits(pngs);
java.util.Arrays.sort(pngs,java.util.Collections.reverseOrder());
swapFirstTwoDigits(pngs);
printArray(pngs);
}
static void swapFirstTwoDigits(String[] array){
for (int i = 0; i < array.length; i++) {
String s = array[i];
array[i] = ""+s.charAt(1)+s.charAt(0)+s.substring(2);
}
}
static void printArray(String [] array){
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
System.out.println("-------------------");
}
}

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果將這些名稱(chēng)存儲(chǔ)在列表中,則可以利用使用比較器的 List#sort 方法。
List<String> names = Lists.newArrayList( "35.png", "27.png" ); names.sort( Comparator.comparing( ( String o ) -> Integer.parseInt( o.substring( 0, 1 ) ) ) .thenComparing( o -> Integer.parseInt( o.substring( 1, 2 ) ) ) );
如果將它們存儲(chǔ)在其他集合中,則可以利用 Stream API 從集合中獲取流,并使用相同的比較器對(duì)流進(jìn)行排序
添加回答
舉報(bào)