# String in Integer Array aufteilen



## dreuter (31. Dez 2010)

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


----------



## nrg (31. Dez 2010)

entweder deinString.split("-") und danach in einer schleife mit Integer.parseInt parsen oder selber splitten/parsen


----------



## dreuter (31. Dez 2010)

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!


----------



## faetzminator (31. Dez 2010)

Mit [c]Integer.parseInt()[/c] kannst du einen String in einen int parsen, etwa so:

```
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]);
}
```


----------



## darekkay (31. Dez 2010)

Oder den StringTokenizer verwenden:

```
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


----------



## dreuter (31. Dez 2010)

und nach dem parsen hab ich dann schon das array, das ich weiterverwenden kann!?


----------



## faetzminator (31. Dez 2010)

Ja, in meinem Code wurde das auf Zeile 3 mit der richtigen Grösse angelegt und in Zeile 5 (4-6) abgefüllt.


----------



## dreuter (31. Dez 2010)

bei diesem code bekomme ich nur leider die fehlermeldung: "cannot find symbol - class StringTokenizer". Zur Info: Ich verwende BlueJ!

Danke nochmals!


----------



## dreuter (31. Dez 2010)

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!


----------



## dreuter (31. Dez 2010)

Also eine Frage hätte ich da doch noch mal und hoffe, dass sie nicht so böld klingt, aber:

Bei der Methode:


```
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?


----------



## darekkay (31. Dez 2010)

Oh ja, hab das mit dem Array überlesen. So hier könnte man das lösen:


```
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


----------



## dreuter (31. Dez 2010)

*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?


----------



## darekkay (1. Jan 2011)

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..


----------

