# StringTokenizer



## tameck (14. November 2007)

Hi 

ich muss einen string "auseinander nehmen" und will den StringTokenizer verwenden hab aber leider keine ahnung wie ich den genau verwende .... 

wär super wenn mir jemand kurz ein beispiel zeigen könnte ... 

danke 

gruß chris


----------



## Ronin-Jay (14. November 2007)

Die SuFu hätte Dir reichlich Ergebnisse geliefert...

Hier ist ein Beispiel:

```
import java.util.ArrayList;
import java.util.StringTokenizer;

public class StrTokenizerExample {
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		String str 			   = "Ich bin mal ein längerer unsinniger Satz " +
							 	 "ohne jegliche Bedeutung.";
		StringTokenizer strTk  = new StringTokenizer(str);
		ArrayList       tkList = new ArrayList();
		while (strTk.hasMoreTokens()) {
			tkList.add(strTk.nextToken().toString());
		}
		System.out.println(tkList.get(2));
		
		
	}
}
```


----------



## Kulabac (14. November 2007)

Geht aber auch ohne ArrayList ...


```
import java.util.StringTokenizer;

public class Test2 {
	static String string = "123 Test;Noch_ein_Test.Mehr-Test";
	
	public static void main (String [] args) {
		StringTokenizer tok = new StringTokenizer(string,";. -");
		while (tok.hasMoreTokens())
			System.out.println(tok.nextToken());
	}
}
```
Du kannst halt dem StringTokenizer mitgeben, an welchen Zeichen er trennen soll. Wenn du nur ein bestimmtes Zeichen hast wäre vielleicht auch drüber nachzudenken es einfach mit String.split() zu versuchen. Ohne dass man Trennzeichen angibt trennt der StringTokenizer halt an Leerzeichen, Tabulator und Zeilenwechsel. In diesem Fall hab ich  ; . Leerzeichen und - angegeben. Wobei die Trennzeichen automatisch gelöscht werden, also nicht mit ins Token wandern.

Ergibt als Ausgabe:

```
123
Test
Noch_ein_Test
Mehr
Test
```


----------



## tameck (14. November 2007)

aber wieso werden mir 

java.util.String.Tokenizer
new StringTokenizer(str)
hasMoreTokens
nextToken 

als fehler angezeigt ?


----------



## Ronin-Jay (14. November 2007)

@Kulabac:
Hatte den Source aus einem anderen Post von mir rauskopiert...

@tameck:
Hast Du den notwendigen Import eingebunden?


----------



## tameck (14. November 2007)

jo hatte ich eingebunden kann das an der verwendeten java version liegen ? 

weil mit 1.4 gehts einwandfrei mit 1.6 aber nich


----------



## MiMi (14. November 2007)

Also in der Api
http://java.sun.com/javase/6/docs/api/java/util/StringTokenizer.html
Ist es bei java 6 genauso zu finden.


----------



## tameck (14. November 2007)

so geht jetzt 

abr noch eine frage kann ich den zerlegten string in einzelne strings schreiben ?


----------



## MiMi (14. November 2007)

Ja in ein Stringarray geht das fix, benutz mal die Forensuche, da gabs letztens noch einen Thread zu!


----------



## Anime-Otaku (14. November 2007)

Du kannst auch ein string.split(Trennzeichen) anstatt dem StringTokenizer benutzen. Da bekommst du dann gleich ein String[] zurück.


----------



## Ronin-Jay (14. November 2007)

Alternativ kannst Du in meinem Bsp oben auch einfach nur tkList.toArray() sagen und erhältst ein Array.


----------



## tameck (14. November 2007)

bei string.split kann ich nur einen parameter angeben oder


----------



## tameck (14. November 2007)

oder wie kann ich den string tokenizer in ein string array packen


----------



## Ronin-Jay (14. November 2007)

Ronin-Jay hat gesagt.:


> Alternativ kannst Du in meinem Bsp oben auch einfach nur tkList.toArray() sagen und erhältst ein Array.



wie schon gesagt....

string[] = ArrayList.toArray()


----------

