2017-10-18 38 views
1

Hey, je me demandais ce qui serait un moyen efficace de commander 3 variables de chaînes différentes par ordre alphabétique? J'ai essayé d'utiliser .compareTo() comme un moyen de les comparer. Mais est devenu coincé et confus comment reclasser ce retour à une liste réordonnée des cordes.Re-ordering variables de la chaîne par ordre alphabétique

public static void main(String args[]) 
{ 
    String a = "Can", b = "Am", c = "Be", d= " "; 

    int first = a.compareTo(b); 
    int second = a.compareTo(c); 
    int third = b.compareTo(c); 
    int fourth = d.compareTo(d); 
    if (first > 0) 
    { 
     fourth = second; 
     second = first; 
     first = fourth; 
    } 

    System.out.println(first); 
    System.out.println(second); 
    System.out.println(third); 
    System.out.println(fourth); 
} 
+4

Y a-t-il une raison pour laquelle vous utilisez plusieurs variables plutôt qu'un simple tableau ou liste, qui peut être facilement trié? –

+1

placez-les tous dans une liste de chaînes, puis appelez 'List.sort()' (à partir de Java 8) ou 'Collections.sort()' –

Répondre

2

Vous pouvez simplement les placer dans un TreeSet. TreeSet l'ordonne automatiquement pour vous par ordre alphabétique.

code Exemple:

String a = "Can", b = "Am", c = "Be", d= " "; 
TreeSet<String> set=new TreeSet<>() 
set.add(a); 
set.add(b); 
set.add(c); 
set.add(d); 
for (String s:set){ 
    System.out.println(s); 
} 
1

Un moyen facile de le faire serait de stocker les chaînes dans un tableau, puis trier

String[] array= {"Can", "Am", "Be", " "}; 
Arrays.sort(array); 

for (String string : array) { 
    System.out.println(string); 
} 
1

Utilisez la méthode Collections.sort() comme suit

List<String> arr = new ArrayList<>(); 
arr.add("Can"); 
arr.add("Am"); 
arr.add("Be"); 
arr.add(" "); 

System.out.println("Before sort : "+arr); 
Collections.sort(arr); 
System.out.println("After sort : "+arr); 

Sorties:

Before sort : [Can, Am, Be, ] 
After sort : [ , Am, Be, Can]