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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19468122/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 17:32:30  来源:igfitidea点击:

how to sort a string alphabetically java

javaalphabetical

提问by adrisp

I want to sort a string in JAVA alphabetically, as follows Capital letter and lowercase letter followed AaBbCcDdEeFfGg. for example if I put AbaC return me AabC thanks!!

我想按字母顺序对JAVA中的字符串进行排序,如下大写字母和小写字母后跟AaBbCcDdEeFfGg。例如,如果我把 AbaC 返回给我 AabC 谢谢!!

采纳答案by Boann

You can do this using Arrays.sort, if you put the characters into an array first. (It must be an array of Characterobjects rather than charprimitives, in order to use a custom case-insensitive comparator.)

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

回答by EyeOfTheHawks

Turn the String into a character array, then compare the int values of each character in your sort.

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

Methods needed: String.toCharArray();

需要的方法: String.toCharArray();

回答by Rahul Tripathi

You may try to look for Collections.sortand then try like this:-

您可以尝试查找Collections.sort然后像这样尝试:-

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

Something like this:-

像这样的东西:-

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

EDIT:-

编辑:-

For sorting alphabetically in a string try like this:-

要在字符串中按字母顺序排序,请尝试这样:-

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