如何按字母顺序对字符串java进行排序

时间:2013-10-19 16:09:42

标签: java alphabetical

我想按字母顺序对JAVA中的字符串进行排序,如下所示 接下来是大写字母和小写字母 AaBbCcDdEeFfGg。 例如,如果我把AbaC归还给我AabC 谢谢!

3 个答案:

答案 0 :(得分:13)

如果先将字符放入数组中,则可以使用Arrays.sort执行此操作。 (它必须是Character个对象的数组而不是char个基元,以便使用自定义的不区分大小写的比较器。)

// put the characters into an array
Character[] chars = new Character[str.length()];
for (int i = 0; i < chars.length; i++)
    chars[i] = str.charAt(i);

// sort the array
Arrays.sort(chars, new Comparator<Character>() {
    public int compare(Character c1, Character c2) {
        int cmp = Character.compare(
            Character.toLowerCase(c1.charValue()),
            Character.toLowerCase(c2.charValue())
        );
        if (cmp != 0) return cmp;
        return Character.compare(c1.charValue(), c2.charValue());
    }
});

// rebuild the string
StringBuilder sb = new StringBuilder(chars.length);
for (char c : chars) sb.append(c);
str = sb.toString();

答案 1 :(得分:8)

您可以尝试寻找Collections.sort,然后尝试这样: -

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

这样的事情: -

private static Comparator<String> ALPHA_ORDER = new Comparator<String>() {
    public int compare(String str1, String str2) {
        int x = String.CASE_INSENSITIVE_ORDER.compare(str1, str2);
        if (x== 0) {
            x= str1.compareTo(str2);
        }
        return x;
    }
};

Collections.sort(list, ALPHA_ORDER);

修改: -

要按字母顺序排序,请尝试以下方法: -

Collator col = Collator.getInstance(new Locale("en", "EN"));
String s = "AbaC";
String[] s1= s.split("");
Arrays.sort(s1, col);
String sorted = "";
for (int i = 0; i < s1.length; i++)
{
  sorted += s1[i];
}
System.out.println(sorted);

答案 2 :(得分:3)

将String转换为字符数组,然后比较排序中每个字符的int值。

所需方法: String.toCharArray();