Apps für Android programmieren leicht gemacht!
In Java Alphabetisch Sortieren

Alphabetisch Sortieren

Bereits vor einiger Zeit haben wir hier auf Droid-Lernen.de zwei Artikel veröffentlicht, die sich mit den Sortieralgorithmen Bubblesort und Quicksort beschäftigt haben. Nun handelt es sich diesen zwei Algorithmen um eine Implementation, um zwei Zahlen vergleichen zu können.
Wir wollen uns heute einmal mit damit beschäftigen Alphabetisch zu Sortieren.

An sich handelt es sich bei der Sortierung von Springs um nichts großartig anders, als der Sortierung von zweier Zahlen.
Glaubt ihr nicht ?

Naja normalerweise vergleicht man zwei Zahlen folgendermaßen:

if( 1 < 2){
   System.out.println("Eins ist kleiner als Zwei.");
}

Versuchen wir nun zwei Springs genau so zu vergleichen werden wir einen Fehler erhalten und das Programm bricht ab.

Um zwei Springs vergleichen zu können müssen wir uns dem alphabetischen Stellenwert eines einzelnen Buchstaben behelfen, damit wir wieder zwei Zahlen erhalten, die wir vergleichen können.

Wir gehen als in unserem Beispiel davon aus, dass ein „a“ den alphabetischen Stellenwert 1 erhält und das „b“ dann den Wert 2, da „a“ an Stelle 1 liegt.
So könnten wir rein theoretisch jeden einzelnen Buchstaben mit dem zugehörigen Buchstaben des zweiten Springs vergleichen, bis wir einen Unterschied erhalten und dann prüfen wo der Stellenwert liegt.
In Java steht uns dafür allerdings bereits die Funktionen „.compareTo()“ und „.compareToIgnoreCase()“ zu Verfügung.

Diese Funktionen liefern uns ein Ergebnis von 0, wenn beide Stings gleich sind.
Diese Funktionen liefern uns ein Ergebnis von mehr als 0, der erste String im Alphabet weiter hinter liegt.
Diese Funktionen liefern uns ein Ergebnis von weniger als 0, der erste String im Alphabet weiter vorne liegt.

Als Beispiel:

String a = "Ameise";
String b = "Brotspinne";

int unterschied1 =  a.compareTo( b );
int unterschied2 =  b.compareTo( a );

// unterschied1 = -1
// unterschied2 = 1
// Die Variable unterschied1 ist nun mit einer -1 gefüllt, da das b im Gegensatz zu a eine Stelle im Alphabet weiter hinter liegt. Unterschied2 hingegen ist mit einer 1 gefüllt, weil das a einen rechts von b im Alphabet liegt.

 

Wir machen uns diese Funktionen nun zu Nutze und schreiben unsere BubbleSort Funktion wie folgt um:

public String[] BubbleSort(String[] array){
   String temp = "";
   for(i = 0; i < array.lenght; i++){
      for(j = 0; j < array.lenght; j++){
         if(array[ j ].compareTo(array[ j + 1 ]) > 0){
            temp = array[ j ];
            array[ j ] = array[ j + 1 ];
            array[ j + 1 ] = temp;
         }
      }
   }
   return array;
}

Das Ergebnis: Alphabetisch Sortieren geglückt.

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld