我制作了一个数组,其中包含8个PNG文件,例如27.png。我试图在j.label中显示它们并在它们之间交换,但是它们需要按两种不同的方式进行排序。 PNG名称中的“ 2”表示它是最便宜的商品第二名,而7表示它是收视率最高的第七名。因此,34.png将是第三便宜的,评分为4/8。

我曾尝试研究使用index.of的方法,但在我的情况下找不到使用它的方法。

非常感谢任何帮助。

最佳答案

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("-------------------");

    }
}

关于java - 如何使用数组中png的名称以两种不同方式对数组进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58653134/

10-12 03:04
查看更多