# String in einzelne Zeichen zerlegen



## nik7887 (29. Jun 2009)

Hey,
gibt es eine Möglichkeit einen String in jedes einzelne Zeichen aufzusplitten und in ein Array zu speichern? mit split() bekomm ich es nicht hin bzw. finde keinen geeigneten regulären Ausdruck. Geht es mit split()? Wenn ja mit welchem Parameter? Falls nicht habt ihr eine andere Idee? Wäre euch super dankbar für Hilfe 
Bsp: hallo welt! -> {"h", "a", "l", "l", "o", " ", "w", "e", "l", "t", "!"}
Gruß Nik


----------



## Ark (29. Jun 2009)

Es gibt zig Methoden, Infixe zu isolieren. Wenn du uns jetzt noch etwas genauer verraten würdest, was du vorhast, können wir dir von diesen vielen Methoden die geeigneten vorschlagen. 

Ark


----------



## nik7887 (29. Jun 2009)

hm, also eine zeichenkette soll einfach in jedes einzelne zeichen aufgespalten werden, egal welches dieses ist und in einem Array abgespeichert werden (jedes zeichen soll einen Platz im array besetzen). Wie obiges Bsp., egl hab ich das ja schon geschrieben, also was genau meinst du mit was ich damit vorhabe? das ist egl schon alles bzw. was ich danach mit dem array machen will spielt ja keine rolle oder?


----------



## Kar (29. Jun 2009)

toCharArray(); kann das.

Beispiel:

```
String s = "Hello, World";
char[] c = s.toCharArray();

for(int i = 0; i < c.length; i++) 
      System.out.print(c[i]);
```


----------



## nik7887 (29. Jun 2009)

hm ok vllt wäre es doch wichtig zu sagen was ich danach damit machen will. Also anschließend möchte ich jedes element des arrays damit vergleichen ob es gleich "*" ist. Habe noch nie mit char gearbeitet geht das irgendwie? finde da keine methoden ala equals oder so zu..


----------



## Ark (29. Jun 2009)

nik7887 hat gesagt.:


> hm, also eine zeichenkette soll einfach in jedes einzelne zeichen aufgespalten werden, egal welches dieses ist und in einem Array abgespeichert werden (jedes zeichen soll einen Platz im array besetzen).


_Warum_ willst du denn das Zeichenarray haben? Ein Array von Zeichen ist (aus informationstheoretischer Sicht) genau das gleiche wie ein String. Es ist ohne spezielle Gründe sinnlos, da "nichts passiert".

Wenn du die einzelnen Zeichen aus dem String lesen willst, verwende charAt(int). Ein char ist ein primitiver Datentyp. Für diesen existieren die gleichen Operationen wie für int. Du kannst also chars miteinander vergleichen, addieren, subtrahieren, dividieren ...

Ark


----------



## Kar (29. Jun 2009)

Ja, dann schreibste alle Werte aus dem char-Array in einen String-Array. Somit steht dir dann die equals()-Methode zur Verfügung.

```
String s = "Hello, World*";
char[] c = s.toCharArray();
String[] sA = new String[c.length];

for(int i = 0; i < c.length; i++)
       sA[i] = String.valueOf(c[i]);
```

Edit:
Wenn du nur überprüfen möchtest, ob da 'n * drin ist, wieso überprüfst du das dann einfach nicht mit String#contains(); ?


----------



## nik7887 (29. Jun 2009)

Danke für eure Hilfe, mein Problem ist gelöst


----------



## Ark (29. Jun 2009)

Kar hat gesagt.:


> Ja, dann schreibste alle Werte aus dem char-Array in einen String-Array. Somit steht dir dann die equals()-Methode zur Verfügung.


Ich glaub', ich weiß, warum Java als "langsam" gilt/galt. *g*

Nichts für ungut, aber ich denke, man sollte immer, auch bei OO-Sprachen wie Java, eine Ahnung davon haben, was im Hintergrund passiert, wenn man dieses oder jenes schreibt. Dein Code hier ist viel Anstrengung für nichts. Beim Kopieren von Daten sinkt lediglich der Informationsgehalt, während die Redundanz steigt, oder auf Deutsch: Abschreiben macht nicht schlauer, aber lässt das Gehirn platzen. 

Ark


----------

