2012-03-24 8 views
0

Also haben wir dieses Problem, das wir versuchen, herauszufinden. Heres, was das Problem fragt. Lester hat eine Liste von Wörtern, die er drucken möchte, nicht in der üblichen alphabetischen Reihenfolge, aber auch nicht in zufälliger Reihenfolge. Er entschied sich für eine Methode, um die Wörter, die er AlphaFun nennt, zu sortieren. Die Ordnungsmethode AlphaFun sortiert die Wörter mit dem folgenden Verfahren: 1.Vergleichen Sie zuerst den 2. Buchstaben der Wörter 2.Vergleichen Sie den 4. Buchstaben der Wörter (der 4. Buchstabe wird als Leerzeichen in Wörtern mit weniger als 4 Buchstaben). 3. Vergleichen Sie den letzten Buchstaben der Wörter (der letzte Buchstabe ist immer der letzte Buchstabe des Wortes, kein Leerzeichen). 4.final vergleichen Sie den ersten Buchstaben in den Wörtern. 5.Wenn alle oben genannten Zeichen dieselben sind, werden die für diese Buchstaben verwendeten Wörter alphabetisch sortiert.Sortierung mit AlphaFun

note diese Beispiele Wörter:

EGG

EIER

BREAD

ALPHAFUN:

G SE

GSSE

RADB

Eingang die Eingangsdateien und unbekannte Anzahl von Zeilen enthält, wobei jede Zeile von inputer ein einziges Wort von 3 bis 10 Buchstaben bestehend enthält. Ausgang Sie die Wörter in alpha druckt Spaß bestellen

Beispiel Eingabedatei: BREAD AERIE BREIT EIER EGG WALLET

Beispiel Ausgabe WALLET AERIE EGG EIER BREAD zu screenen BROAD

Wie könnten wir das tun p Problem? Wir sind seit 2 Stunden darauf festgefahren.

Antwort

1

wie Könnten wir dieses Problem lösen? Wir sind seit 2 Stunden darauf festgefahren.

Java macht das eigentlich ziemlich einfach. Sie müssen nur Comparator<String> in einer Klasse implementieren, z.

public class AlphaFunComparator implements Comparator<String> { 
    public int compare(String o1, String o2) { 
     // Implement rules described in the question 
    } 
} 

Dann brauchen Sie nur die Datei in eine Liste zu laden, und rufen:

Collections.sort(list, new AlphaFunComparator()); 

Druck aus der Liste aus, und du bist fertig.

+0

Paket alphafun; Import java.io. *; Import java.util. *; public class AlphaFun { public static void main (String [] args) throws IOException { Scanner s = new Scanner (neue Datei ("c:/Dokumente und Einstellungen/Administrator/Eigene Dateien/NetBeansProjects/AlphaFun/alphafun. dat ")); String trim = s.next(). Trim(); s.nextLine(); Zeichenfolge trim1 = s.next(). Trim(); trim [1] } } das ist was wir haben, müssen wir es überarbeiten? –

+0

Kannst du uns ein Beispiel geben, da wir das nie in unserer Klasse gearbeitet haben? –

+1

@AbrahamAndujo: Wenn ich dir mehr geben würde, würde es im Grunde deine Hausaufgaben für dich erledigen. Ich habe Ihnen die Art und Weise aufgezeigt, wie Sie es angehen müssen, einschließlich des Skeletts des am wenigsten offensichtlichen Bits. Du solltest den Rest selbst machen können - und wenn du es nicht kannst, dann solltest du am besten mit deinen Lehrern darüber reden, wo sie sich mit dir hinsetzen und herausfinden können, welche Teile der Lektionen du nicht hast verstanden. –

1

Ihre Ordnungslogik in einer Vergleichs Klasse implementieren, dann Strings in eine Liste von einer Art (Arraylist) sammeln, schließlich Collections.sort (Arraylist, myComparator) verwenden:

Collections.sort(List, Comparator)