web-dev-qa-db-fra.com

comment trier une chaîne par ordre alphabétique java

Je veux trier une chaîne en Java par ordre alphabétique, comme suit la lettre majuscule et la lettre minuscule suivie AaBbCcDdEeFfGg. Par exemple, si je mets AbaC, retournez-moi AabC merci !!

10
adrisp

Vous pouvez le faire en utilisant Arrays.sort, si vous mettez d'abord les caractères dans un tableau. (Il doit s'agir d'un tableau d'objets Character plutôt que de primitives char, afin d'utiliser un comparateur personnalisé ne respectant pas la casse.)

// 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();
13
Boann

Vous pouvez essayer de chercher Collections.sort puis essayer comme ceci: -

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

Quelque chose comme ça:-

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

MODIFIER: -

Pour trier par ordre alphabétique dans une chaîne, essayez comme ceci: -

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);
8
Rahul Tripathi

Transformez la chaîne en un tableau de caractères, puis comparez les valeurs int de chaque caractère de votre tri.

Méthodes nécessaires: String.toCharArray();

3
EyeOfTheHawks