String in Integer Array aufteilen

dreuter

Mitglied
Hallo,

hab zwar schon einiges darüber gelesen, aber ich steig noch nicht ganz dahinter. Ich mache eine Eingabe nach dem Muster "Zahl-Zahl-Zahl..." also beispielsweise "8-9-6-8". Das wird im String eingegeben gespeichert. Um diesen nun weiter verarbeiten zu können, muss ich diesen String in einen Integer Array aufteilen, sodass ich dann aufgeteilt i mit dem Inhalt einer Zahl erhalte, z.B.: aufgeteilt 1 = "8". Das Trennzeichen ist dann der Bindestrich "-".

Kann mir dabei jemand helfen?

Danke schoneinmal!

dreuter
 
entweder deinString.split("-") und danach in einer schleife mit Integer.parseInt parsen oder selber splitten/parsen 🙂
 
Das mit dem String.split hab ich verstanden, aber ich weis nicht, wie ich danach genau weitermachen muss, kannst du mir das etwas genauer erklären, ich bin noch ein ziemlicher Anfänger, was Java anbelangt.

Danke!
 
Mit [c]Integer.parseInt()[/c] kannst du einen String in einen int parsen, etwa so:
Java:
String input = "8-9-6-8";
String[] splittedInput = input.split("\\-");
int[] values = new int[splittedInput.length];
for (int i = 0; i < splittedInput.length; i++) {
    values[i] = Integer.parseInt(splittedInput[i]);
}
 
Oder den StringTokenizer verwenden:
Java:
String str = "8-9-6-8";
StringTokenizer tokenizer = new StringTokenizer(str,"-");	// Token erstellen

while (tokenizer.hasMoreTokens())							// über die Token iterieren
     System.out.println("" + Integer.parseInt(tokenizer.nextToken()));	// Umwandlung String -> Integer und die Ausgabe

Nicht vergessen, dass parseInt eine Exception schmeißt, falls der Wert keine Zahl ist 😉
 
bei diesem code bekomme ich nur leider die fehlermeldung: "cannot find symbol - class StringTokenizer". Zur Info: Ich verwende BlueJ!

Danke nochmals!
 
sorry, das war mein fehler, ich hab die zeile " import java.util.StringTokenizer;" vergessen! Danke nochmal für die schnelle Hilfe! Euch einen Guten Rutsch ins neue Jahr!

Falls noch was sein sollte, werde ich mich melden! 😀
 
Also eine Frage hätte ich da doch noch mal und hoffe, dass sie nicht so böld klingt, aber:

Bei der Methode:

Java:
String str = "8-9-6-8";
StringTokenizer tokenizer = new StringTokenizer(str,"-");   // Token erstellen
 
while (tokenizer.hasMoreTokens())                           // über die Token iterieren
     System.out.println("" + Integer.parseInt(tokenizer.nextToken()));  // Umwandlung String -> Integer und die Ausgabe

Wie heißt dann da jetzt das Array?

Danke nochmal!

P.S.: Oder wie verwende ich denn jetzt das Array weiter?
 
Zuletzt bearbeitet:
Oh ja, hab das mit dem Array überlesen. So hier könnte man das lösen:

Java:
String str = "8-9-6-8";
StringTokenizer tokenizer = new StringTokenizer(str,"-");	// Token erstellen
int count = tokenizer.countTokens();
int[] values = new int[count];
		
for (int i=0; i<count; i++)		
	values[i] = Integer.parseInt(tokenizer.nextToken());

// Beispielausgabe
for (int i= 0; i<values.length; i++)
	System.out.println(values[i]);

Ziemlich das Gleiche, was faetzminator schon gepostet hat - halt nur mit einer anderen Klasse ^^

So, das war mein letzter Post für dieses Jahr - feiert schön und guten Rutsch 😀
 
*so, das klappt ja eigentlich, aber beim compilieren, kommt eine fehlermeldung mit bluej: "cannot find symbol - variable values". das steht aber auch in einer anderen klasse. woran kann das denn liegen?
 
Ich hab noch nie mit BlueJ gearbeitet, und unter Eclipse bekomme ich keine Fehlermeldungen.
Und die Meldung verstehe ich auch nicht ganz: gehört der Bindestrich zu der Meldung, oder meckert er wegen dem "-" im Code? Wird denn die Zeile angezeigt, an der der Fehler kommt? Und ist es überhaupt ein Fehler oder nur eine Warnung (weil du meintest, dass es eigentlich funktioniert ^^).

Ohne Quellcode und der Zeilenangabe kann man nur spekulieren..
 

Neue Themen


Zurück
Oben