java-使用整数和字符进行数组排序

我正在尝试对两种不同类型的数组进行排序.我正在按工作的数字顺序对整数数组进行排序,我还需要按字母顺序对字符数组进行排序.我在对Character数组进行排序时遇到了一些麻烦.我的老师想让我们对大写字母进行排序,他希望他们在打印数组时保持大写字母不变.首先,我将Character数组转换为小写形式,以便对其进行正确排序.但是我如何让角色返回资本而不弄乱顺序.

import java.util.*;
public class MyProgram extends ConsoleProgram
{
   int[] numbers = {4, 2, 3, 1, 11, 9};
   Character[] characters = {'z', 'c', 'a', 'q', 'B', 'g'};

public void run()
{
   Arrays.sort(numbers);
   System.out.println(Arrays.toString(numbers));


    Arrays.sort(characters);
    for(int i = 0; i < characters.length; i++)
    {
        if(Character.isUpperCase(characters[i]))
        {
            characters[i] = Character.toLowerCase(characters[i]);
            Arrays.sort(characters);

        }
        System.out.println(characters[i]);
    }
  }
}

解决方法:

我转换为字符串数组,不区分大小写对其进行排序,然后将其转换回字符数组.

public char[] sortArray(char[] arr) {
    // Creating a blank string array
    String [] end = new String[arr.length];

    // Converting (char) arr array to (string) end array.
    for(int i = 0; i < arr.length; i++) {
        end[i] = "" + arr[i];
    }

    // Sorts the end array ignoring case
    Arrays.sort(end, String.CASE_INSENSITIVE_ORDER);

    // Converting (string) end array to (char) arr array.
    for(int i = 0; i < arr.length; i++) {
        arr[i] = end[i].charAt(0);
    }

    // Returns arr aray
    return arr;
}
上一篇:c#-Linq OrderBy()与List.Sort()的速度


下一篇:PHP-MYSQL使用特定的行进行排序和限制,并选择上一行和下一行