一组排序小方法.txt

来自「java开发中经常用到的代码」· 文本 代码 · 共 64 行

TXT
64
字号
import java.util.Arrays;
import java.util.Comparator;

public class SortTest
{
    public static void main(String args[])
    {
        char[] chs = {'f', 'F', 'K', 'A', 'a', 'j', 'z'};
        chs = sortChars(chs, false);
        
        for(char c: chs)
        {
            System.out.println(c);
        }
    }

    /**
     * 对给定的字符数组进行字典排序
     * @param chs 目标字符数组
     * @param upperFisrt 大写字母是否在前
     * @return 排序后的字符数组
     */
    public static char[] sortChars(char[] chs, final boolean upperFisrt)
    {
        Character[] srcArray = new Character[chs.length];
        char[] retArray = new char[chs.length];
        int index = 0;
        
        for(char ch: chs)
        {
            srcArray[index++] = ch;
        }
        
        Arrays.sort(srcArray, new Comparator<Character>()
        {
            public int compare(Character c1, Character c2)
            {
                char ch1 = Character.toUpperCase(c1);
                char ch2 = Character.toUpperCase(c2);

                if(ch1 == ch2)
                {
                    int tempRet = c1.charValue() - c2.charValue();
                    return upperFisrt? tempRet: -tempRet;
                }
                else
                {
                    return ch1 - ch2;
                }
            }
        });
        
        index = 0;
        
        for(char ch: srcArray)
        {
            retArray[index++] = ch;
        }
        
        return retArray;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?