Strings nach Teile sortieren

Java-Star

Aktives Mitglied
Hallo Leute!

Ich habe jetzt schon seit einigen Stunden das Problem, dass ich nicht weiß, wie man einen String nach seinen Einzelteilen sortieren kann.

Also:
Ich habe ein String[] Array und will dann in einer for-Schleife jeden String in Name und Nummer einteilen. Das habe ich auch schon geschafft! Doch jetzt habe ich den Namen und die Nummer und möchte mit Hilfe der Nummern die ganzen Strings des gesamten String[] Arrays sortieren.

Beispiel: Name1 2
Name2 1
Name3 23

Sortiertes Ergebnis: Name2 1
Name1 2
Name3 23

Bitte helft mir, ich weiß nicht weiter ;(

Danke für eure Hilfe!
 

turtle

Top Contributor
Du solltest eine Klasse (Turtle?) schreiben, die beide Dinge Name und Nummer zu einem Objekt zusammenfasst.

Dann musst du "nur" noch das Array[Turtle] sortieren, indem du angibst, ob nach Name oder Nummer sortiert werden soll. Hier heisst das Stichwort Comparable bzw. Comparator.
 
Zuletzt bearbeitet:

stg

Top Contributor
Entweder benutzt du gleich eine gescheite angemessene Datenstruktur, oder du schreibst deinen eigenen Comparator
 

Java-Star

Aktives Mitglied
Also...

Ich habe jetzt noch ein bisschen rumgeschraubt und mittlerweile das hier:

Java:
	public void showHighscores1() {
		
		boolean dateiende = false;
		
		try {
			
			BufferedReader scores = new BufferedReader(new FileReader(hPfad));
			BufferedReader scores2 = new BufferedReader(new FileReader(hPfad2));
			
			nr = 0;
			while(!dateiende) {
					
				zeile = scores.readLine();
					
				if (zeile == null) {
						
					dateiende = true;
				}
				else {
					
					spieler.add(zeile);
				}
			}			
			
			dateiende = false;
			while(!dateiende) {
					
				zeile2 = scores2.readLine();
					
				if (zeile2 == null) {
						
					dateiende = true;
				}
				else {
						
					punktzahl.add(zeile2);
					nr++;
				}
			}
			
			namen = new JPanel();
			namen.setLayout(null);
			namen.setSize(420, 300);
			snamenP = new JLabel[nr];
			
			String namen1[] = new String[nr];
			String punkte[] = new String[nr];
			int punkte2[] = new int[nr];
			
			for(int i = 0; i < nr; i++) {
				
				namen1[i] = spieler.get(i).toString();
				
				punkte[i] = punktzahl.get(i).toString();
				punkte2[i] = Integer.parseInt(punkte[i]);
			}
			
			for(int i = 0; i < nr; i++) {
				
				snamenP[i] = new JLabel(namen1[i] + " " + punkte2[i]);
				namen.add(snamenP[i]);
			}
			
			JFrame h = new JFrame("Highscores");
			h.add(namen);
			
			int gl1 = getWidth() - 20;
			int gl2 = 20;
			int lx = namen.getWidth() - (getWidth() - 40);
			int ly = namen.getHeight() / nr - 5;
			
			for(int i = 0; i < nr; i++) {
				
				snamenP[i].setBounds(lx, ly*i, gl1, gl2);
			}
			
			h.setSize(420, 300);
			h.setLocationRelativeTo(h);
			h.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			h.setVisible(true);
			
		}
		catch(IOException IO) {
			
			JOptionPane.showMessageDialog(null, "Die Datei konnte nicht gefunden werden! Bitte überprüfe, ob sie im Ordner ist.");
		}
		
	}

Was würdet ihr mir jetzt raten, zu ändern oder hinzuzufügen, damit ich die Labels sortieren kann?
Turtle meinte, ein Objekt zu machen wäre ganz gut. Find ich auch nicht schlecht, aber dieses Objekt muss doch dann noch eine Nummer bekommen, oder? Und ehrlich gesagt, weiß ich jetzt auch nicht wirklich, wie ich das anstellen soll.

Danke für eure Hilfe!:toll:
 

stg

Top Contributor
Was Turtle angesprochen hat würde ungefähr so aussehen:

Java:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Player {

	private String name;
	private Integer score;
	
	public Player(String name, Integer score) {
		this.name = name;
		this.score = score;
	}
	
	public static Comparator<Player> getCompareByNameComparator(){
		return new Comparator<Player>(){
			public int compare(Player one, Player two) {
				return one.name.compareTo(two.name);
			}
		};
	}
	
	public static Comparator<Player> getCompareByScoreComparator(){
		return new Comparator<Player>(){
			public int compare(Player one, Player two) {
				return one.score.compareTo(two.score);
			}
		};
	}
	
	@Override
	public String toString() {
		return this.name + " " + this.score;
	}
	
	public static void main (String [] args) {
		List<Player> players = new ArrayList<>(5);
		players.add(new Player("Rodríguez",6));
		players.add(new Player("Neymar",4));
		players.add(new Player("Benzema",3));
		players.add(new Player("Müller",5));
		players.add(new Player("Messi",4));
		
		System.out.println("Normale Liste:");
		System.out.println(players);
		
		Collections.sort(players, Player.getCompareByNameComparator());
		System.out.println("Sortiert nach Name:");
		System.out.println(players);
		
		Collections.sort(players, Player.getCompareByScoreComparator());
		System.out.println("Sortiert nach Score:");
		System.out.println(players);
		
	}

}

Ausgabe:
Code:
Normale Liste:
[Rodríguez 6, Neymar 4, Benzema 3, Müller 5, Messi 4]
Sortiert nach Name:
[Benzema 3, Messi 4, Müller 5, Neymar 4, Rodríguez 6]
Sortiert nach Score:
[Benzema 3, Messi 4, Neymar 4, Müller 5, Rodríguez 6]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Strings im Array nach Namen sortieren Java Basics - Anfänger-Themen 11
0 Strings nach TABULATOR splitten Java Basics - Anfänger-Themen 10
Bastie Strings nach häufigkeit sortieren -aber wie? Java Basics - Anfänger-Themen 10
M Datentypen Strings nach Muster auslesen und verarbeiten Java Basics - Anfänger-Themen 5
R ArrayList nach Strings sortieren Java Basics - Anfänger-Themen 6
W Suche nach strings zwischen eckigen Klammern mittels regulärer Ausdrücke Java Basics - Anfänger-Themen 3
K Strings der Größe nach ordnen Java Basics - Anfänger-Themen 5
M Kann man im Filter nach mehreren Strings filtern lassen Java Basics - Anfänger-Themen 11
M Strings nach ASCII Zeichen trennen. Java Basics - Anfänger-Themen 7
M Konvertierung v. Strings (evtl. mit Sonderzeichen) nach HTML Java Basics - Anfänger-Themen 8
L Innerhalb eines Strings nach einem Teilstring suchen Java Basics - Anfänger-Themen 2
M Sortieren eines Strings nach Alphabet Java Basics - Anfänger-Themen 4
W Gleichzeitiges ersetzen mehrerer Strings Java Basics - Anfänger-Themen 7
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
N Nachkommastellen von Strings Java Basics - Anfänger-Themen 3
T Strings unveränderlich???? Java Basics - Anfänger-Themen 22
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
S Die durchschnittliche Länge der Strings Java Basics - Anfänger-Themen 11
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
sserio StringBuilder und Strings Java Basics - Anfänger-Themen 8
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
N Strings verpflechten Java Basics - Anfänger-Themen 4
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
L Strings aneinanderhängen Java Basics - Anfänger-Themen 2
M Strings vergleichen Java Basics - Anfänger-Themen 10
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
C Ternärer Operator mit Strings Java Basics - Anfänger-Themen 3
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
P Verketten, Aneinanderreihen von Strings Java Basics - Anfänger-Themen 2
M Strings mit gerader und ungerader Länge ausgeben Java Basics - Anfänger-Themen 10
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
W Strings und das parsen Java Basics - Anfänger-Themen 8
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
D Vergleichen von Strings Java Basics - Anfänger-Themen 6
M Konkatenation von zwei Strings Java Basics - Anfänger-Themen 6
J Abbruchbedingung in Schleife/ Untersuchung von Strings Java Basics - Anfänger-Themen 2
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
X Anagramm mit Strings und Methode Java Basics - Anfänger-Themen 53
P geschachtelte Schleife mit Strings Java Basics - Anfänger-Themen 2
P Strings mit der Axt zerteilen Java Basics - Anfänger-Themen 7
F Alle Zeichenkombinationen eines Strings iterativ herausfinden Java Basics - Anfänger-Themen 26
K Strings hochzählen Java Basics - Anfänger-Themen 20
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
T Probleme mit Strings Java Basics - Anfänger-Themen 6
J Unveränderbarkeit von Strings Java Basics - Anfänger-Themen 3
O Klammerung bei Strings Java Basics - Anfänger-Themen 10
A Liste aus drei Strings erstellen Java Basics - Anfänger-Themen 5
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
G Teil(e) eines Strings entfernen wenn spezifische Zeichen (< & >) vorkommen Java Basics - Anfänger-Themen 5
D ergebnis.matches("[1-9]?[0-9].[0-9][0-9]?") ein teil eines größeren Strings Java Basics - Anfänger-Themen 12
J Breite eines Strings bestimmen Java Basics - Anfänger-Themen 4
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
N Vergleich von Strings schlägt fehl.. Java Basics - Anfänger-Themen 5
B 4 Strings, Anfangsbuchstaben muss unterschiedlich sein Java Basics - Anfänger-Themen 12
P Strings in String Array schreiben Java Basics - Anfänger-Themen 13
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
B mir nur die Gesamtzahl von einzigartigen Strings aus Array ausgeben lassen Java Basics - Anfänger-Themen 5
R Erste Schritte Sicheres einlesen eines Strings Java Basics - Anfänger-Themen 2
F Maximale Länge eines Strings Java Basics - Anfänger-Themen 5
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
Jinnai4 Strings ersetzen Java Basics - Anfänger-Themen 9
R Übergeben eines Array Strings an einen Spinner Java Basics - Anfänger-Themen 4
L Rekursiv zwei Strings vergleichen Java Basics - Anfänger-Themen 3
L Prüfe, ob die im String Array enthaltenen Strings aufsteigend sind. Java Basics - Anfänger-Themen 19
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
C 2 Strings Java Basics - Anfänger-Themen 15
T befehle unterschiedlicher anzahl an strings wiedergeben Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Strings in andere Klassen importieren. Java Basics - Anfänger-Themen 2
D BlueJ Java: Strings voneinander trennen Java Basics - Anfänger-Themen 11
javaerd Wie kann ich Brute Force Methode mit Strings erweitern Java Basics - Anfänger-Themen 1
R Erste Schritte Strings "einrücken" Java Basics - Anfänger-Themen 3
Yamie ArrayList<Object> als Liste von Strings ausgeben? Java Basics - Anfänger-Themen 15
B gemeinsames Vorkommen der charactere von 2 Strings als String zurückgeben Java Basics - Anfänger-Themen 5
R Teilinhalt eines Strings testen Java Basics - Anfänger-Themen 10
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
L Werte von Strings ? Java Basics - Anfänger-Themen 1
L Strings und Arrays - Expand Java Basics - Anfänger-Themen 12
I Schachbrett aus beliebigen Strings erstellen Java Basics - Anfänger-Themen 3
Syncopated Pandemonium Verketten von Strings funktioniert nicht Java Basics - Anfänger-Themen 4
F Wahrscheinlichkeit von Strings Java Basics - Anfänger-Themen 3
MiMa Splitten eines Strings Java Basics - Anfänger-Themen 5
T Hashfunktion für Strings Java Basics - Anfänger-Themen 3
C Zeilenumbruch für langes Strings Java Basics - Anfänger-Themen 2
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
T Datentypen compareTo() u. equals() bei Strings Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben