web-dev-qa-db-fra.com

Comparer deux chaînes et les trier par ordre alphabétique

Je veux comparer deux chaînes et les trier dans l'ordre alphabétique. Je crée actuellement deux tableaux avec les chaînes et je les trie en comparant les deux tableaux.

String a="LetterA";
String b="ALetterB";
String[] array1={a.toLowerCase(),b.toLowerCase()};
String[] array2={a.toLowerCase(),b.toLowerCase()};
Arrays.sort(array2);
if (Arrays.equals(array1, array2)){
    System.out.println(a+" is before "+b);
}
else{
    System.out.println(b+" is before "+a);
}

Cela fonctionne mais cela prend du temps et de la mémoire. Je vous serais reconnaissant si quelqu'un peut suggérer une meilleure façon de faire cela.

6
user2509901

Conseil : toutes les classes de types de données de base en Java implémentent Interface comparable

String a="LetterA";
String b="ALetterB";
int compare = a.compareTo(b);
if (compare < 0){
    System.out.println(a+" is before "+b);
}
else if (compare > 0) {
    System.out.println(b+" is before "+a);
}
else {
    System.out.println(b+" is same as "+a);
}
17
Amit Sharma
int compare = a.compareTo(b);
if (compare < 0){
    System.out.println(a + " is before " +b);
} else if (compare > 0) {
    System.out.println(b + " is before " +a);
} else {
    System.out.println("Strings are equal")
}
1
irla

Si vous recherchez simplement un code simple et élégant et que vous ne voulez pas préoptimiser, vous pouvez utiliser Java 8 comme ceci:

String[] sorted = Stream.of(a, b).sorted().toArray(String[]::new);
System.out.println(sorted[0] + " is before " + sorted[1]);
1
Anton Ivinskyi

Voici le code du problème.

 public static void main(String[] args) {
    String a="Angram";
    String b="Angram";

    if(a.length()==b.length()) {
        char c[]=a.toCharArray();
        char d[]=b.toCharArray();
        Arrays.sort(c);
        Arrays.sort(d);
        a=new String(c);
        b=new String(d);
        if(a.equals(b)) 
            System.out.print("Yes");
        else
            System.out.print("No");
    }
    else {
        System.out.print("No");
    }
}
0
Siva Sankaran