# String auf Sonderzeichen pruefen und falls vorhanden ersetzen



## oldboy (16. Oktober 2007)

hallo liebes forum
ich haette da schon wieder eine frage und es waere sehr nett wenn mir hier jemand weiterhelfen koennte
also ich bekomme strings in denen ein datum enthalten ist, in diesem fall 02/01/2007
jetzt will ich dieses mit einer methode auslesen und anschliessend so wieder ausgeben
tag=02
monat=01
jahr=2007

das funktioniert schon aber eben die sonderzeichen!
wie kann ich am besten eine methode basteln die die sonderzeichen erkennt sie entfernt und mir das datum wie oben beschrieben zurueckgibt

waere echt nett wenn ihr mir helft!
danke im voraus!

liebe gruesse flo


----------



## Ronin-Jay (16. Oktober 2007)

Hallo Flo,

bitte beachte die Board-Nettiquette! Dazu gehört u.A. die Groß-/Kleinschreibung....
In Deinem anderen Thread [hier] hat Dir Xondio doch schon eine Lösung genannt......



> String str = "01022007";
> String tag=str.substring(*0,1*);
> String monat=str.substring(*2,3*);
> String jahr= str.substring(*4*);



Wenn Du jegliche Sonderzeichen dazwischen einfach ignorieren willst, setze andere Indexpositionen (fett gedruckt im o. Beispielzitat).


----------



## oldboy (16. Oktober 2007)

das ist aber nicht das was ich brauche

ich brauche das hier bin aber leider unfaehig deshalb 
bitte hilft mir jemand!!
for(int i=0; i< eingabe.length(); i++
            if (eingabe.charAt(i)=='.')?

            else


----------



## Kulabac (16. Oktober 2007)

Was brauchst du dann? Also ich versteh wirklich dein Problem nicht. Wenn du einen String der Form 02/01/2007 hast, warum kannst du das dann nicht so machen, wie Ronin-Jay geschrieben hat?

Also wenn du 02/01/2007 parsen willst, hast du halt 

```
String tag=str.substring(0,2);
String monat=str.substring(3,5);
String jahr= str.substring(6,10);
```
Aber das bisschen Index-Anpassung hättest du wohl auch allein hingekriegt.

Was soll dein Programm können? Was soll es nicht können? Bei dieser Art das auszulesen ist es völlig egal, welche Sonderzeichen da verwendet werden. Wenn du unbedingt willst, kannst du natürlich hingehen und sowas hier machen:

```
str = str.replaceAll("[^0-9]", "/");
```
Aber das ist zumindest so wie ich dein Problem bisher verstanden hab völlig unnötig. (Der Befehl sucht sich alle Zeichen raus, die keine Zahl sind und ersetzt diese durch / )


----------



## Ronin-Jay (16. Oktober 2007)

oldboy hat gesagt.:


> das ist aber nicht das was ich brauche
> 
> ich brauche das hier bin aber leider unfaehig deshalb
> bitte hilft mir jemand!!
> ...



Wenn Du Dich mal ein wenig genauer ausdrücken könntest, würde sicherlich eine Lösung gefunden werden. Man hat Dir jetzt mehrere Wege gezeigt und ich verweise nochmals auf die Nettiquette, dann würde Dir auch schneller geholfen werden.....

P.s: Kulabac's Hinweis mit String.replace ist denke ich das was Du suchst....


----------

