2016-04-26 6 views
0

Ich muss eine Datei mit einem Satz in jeder Zeile lesen.
Dann muss ich diese Sätze auf der Grundlage der N th Wort (ich habe eine Zahl als ein Eingabeparameter, der die Stelle der Sortierung von diesem Wort im Satz darstellt) gegeben.Sortiere Sätze basierend auf dem N-ten Wort

Datei lesen ist fertig und ich habe die Wörter in einem zweidimensionalen String-Array geladen.

for(String line : Files.readAllLines(file)) 
for(String word : line.trim().split(" ")) 

Wie soll ich die Sätze sortieren?

+0

Sie sollten angeben, was zu tun ist, wenn eine der zu vergleichenden Zeilen (Sätze) weniger als n Wörter enthält. –

Antwort

2

Verwenden Sie eine benutzerdefinierte Comparator<String>, parametrisieren Ihre sort Aufruf (aufgerufen entweder auf einem Collection oder einem Array, durch die Collections oder Arrays Utility-Klassen beziehungsweise).

  • Sie müssen in Ihrem Comparator eine Instanz Feld haben, dass die Nth Wort-Index vertreten Sie auf Basis Sortieren und einen Setter oder Konstruktor es in Ihrer compare(String s1, String s2) Überschreibung
  • zu setzen, werden Sie verwenden Dieses Feld zu prüfen, ob beide String s lang genug sind und genug tatsächliche Wörter haben (dann auch entscheiden, was zu tun ist, wenn entweder nicht qualifiziert)
  • Wenn beide String s qualifizieren, werden Sie diese Wörter durch Aufgliederung sie durch eine Scanner oder Pattern, und geben Sie die Berechnung vonzurückauf diesen beiden Worten, statt die ganze String s
  • , dass diese gegeben eine Liste von String s und einen Wortindex garantieren, werden alle String Qualifying einen abtrennbaren Wort an diesem gegebenen Wortindex zu haben, wird auf die verglichenen basieren lexikografischen Vergleich dieser Wörter, und eine separate Logik für diese String s, die nicht qualifizieren
Verwandte Themen