# Umlaute und Sonderzeichen erkennen



## spidermobile (2. Nov 2005)

Hallo zusammen,

habe leider durch die Forensuche nichts gefunden, was mir helfen könnte und Regex ist auch nicht meine Stärke. Ich schreibe eben ein Programm, welches Verzeichnisse kopiert. Der neue Verzeichnisnamen wird über eine Oberfläche eingegeben. Nun möchte ich prüfen, ob dem eingegebenen String Umlaute und Sonderzeichen enthalten sind (ÄÖÜäöüß etc.) Ich möchte diese nicht ersetzen, sondern lediglich einen Hinweis ausgeben.

wie macht man so etwas am Besten. O.K. Alle Sonderzeichen in ein Array und dann Zeichen für Zeichen vergleichen. Das wäre mir eingefallen, ist aber bestimmt ziemlich umständlich, oder.

Ich würde mich über einen kleinen Tipp freuen.

Danke!


----------



## Campino (2. Nov 2005)

String hat eine Funktion contains mit der du testen kannst ob einzelne zeichen im String enthalten sind. Wenn du keine Regex machen willst musst du solch inen Array bauen und dann mit contains den String auf jedes Zeichen testen.


----------



## spidermobile (2. Nov 2005)

Hallo Campino,

doch, Regex würde ich schon machen. Nur stehe ich mit der Syntag leider auf Kriegsfuss   
Ferner wüsste ich nicht, wie ich mit Regex dann eine Abfrage erstellen kann?


----------



## spidermobile (2. Nov 2005)

Bitte habt erbarmen mit einem Unwissenden  :roll:


----------



## Campino (2. Nov 2005)

Die API ist schlau. Sie weiß, wie man in Strings nach Regex sucht. Zum Beispiel... ach, such selber...





achso: ein Tipp, wie du siehst ist er ganz klein:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)
[äöüß]


----------



## spidermobile (3. Nov 2005)

Hallo zusammen,

die API bringt mich leider nicht weiter. Wie ich schon gesagt habe, stehe ich mit Regex auf Kriegsfuss. Und die API gibt mir leider keine Antwort auf meine Frage. Also noch Mal ganz lieb Bitte, Bitte sag!


```
if (text1.getText().matches("^ÄÖÜäöüß")
```

Was muss ich hier verändern?


----------



## spidermobile (3. Nov 2005)

Habs nun doch selber rausgefunden.


----------



## Sky (3. Nov 2005)

spidermobile hat gesagt.:
			
		

> Habs nun doch selber rausgefunden.


Dann verrat doch mal die Lösung. Andere, die versuchen ihre Problem mit der Forum-Suche zu lösen werden dankbar sein ;-)


----------



## spidermobile (3. Nov 2005)

Hi Sky,

ich war leider zu schnell. Ich wühle mich nun schon seit Stunden durch die Regex Syntax. Noch Mal zur Ausgangsbasis. Ich möchte erkennen, ob in einem String Umlaute vorkommen.


```
if (!text1.getText().matches("[^ÄÖÜäöü]"))
```

Das war leider auch nicht die Lösung? Nun weiss ich gar nicht mehr weiter  :cry:


----------



## Sky (3. Nov 2005)

```
.matches("[^ÄÖÜäöü]*")
```


----------



## spidermobile (3. Nov 2005)

Sky,

vielen, vielen Dank!


----------



## Bleiglanz (3. Nov 2005)

bei dem Anwendungsfall würde ich eher den umgekehrten Weg gehen

also z.B. [a-zA-Z0-9_] als erlaubt bezeichnen, was bringt es schon gross wenn du die Leute bei bestimmten Zeichen warnst (soll ein ß wirklich erlaubt sein, und was ist mit einen \ der bestimmt auch Quatsch ist??)


----------



## spidermobile (3. Nov 2005)

Hallo Bleiglanz,

vielen Dank für den Tipp. Ja natürlich ist das besser. Nun habe ich wieder ein wenig über Regex gelernet.

Danke  :applaus:


----------

