字母排序(A-Z)(先大寫(xiě),后小寫(xiě))
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);
}
}
/**
* 對(duì)給定的字符數(shù)組進(jìn)行字典排序
* @param chs 目標(biāo)字符數(shù)組
* @param upperFisrt 大寫(xiě)字母是否在前
* @return 排序后的字符數(shù)組
*/
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
{
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;
}
}
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)Java編程的三十個(gè)基本規(guī)則北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |