2 回答
TA贡献1853条经验 获得超9个赞
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贡献1829条经验 获得超4个赞
如果将这些名称存储在列表中,则可以利用使用比较器的 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 ) ) ) );
如果将它们存储在其他集合中,则可以利用 Stream API 从集合中获取流,并使用相同的比较器对流进行排序
添加回答
举报