# String auf Zahlen prüfen



## Heli_5050 (19. Okt 2012)

Hallo Leute!
Habe ein kleines Problem:

ich muss ein Feld auslesen das normalerweise 8 stellen Lang ist (String)
Es kann aber vorkommen, dass in diesen String Sonderzeichen wie ("/" oder "-" drin sind)
Diesen String convertiere ich nachher in einen LONG (weil ich ma dacht hab dort stehen eh nur Zahlen drin aber dem ist anscheinend nicht so, da auch solche Zeichen drinnen stehen können...) 

Kann mir jemand weiterhelfen, wie ich prüfen kann, ob dieser String ausschliesslich NUR Zahlen enthält?
Gibts hierfür eine Methode in JAVA?

Danke + LG


----------



## The_S (19. Okt 2012)

bspw.


```
try {
   Long.parseLong(string);
} catch (NumberFormatException e) {
  // nicht nur zahlen
}
```

oder


```
string.matches("[0-9]+");
```


----------



## Michael... (19. Okt 2012)

Da gibt es einige Möglichkeiten,  z.B. mittels der matches(RegExp) von String oder Pattern.matches(RegExp)


----------



## Heli_5050 (19. Okt 2012)

Hy The_S,

Danke, deine 2. Möglichkeit passt prima!
Wie funktioniert das Teil "string.matches("[0-9]+");" ?
Gibts da "Nebenwirkungen" auch oder ist das eine "sichere" Sache, dass wirklich nur wenn der String Zahlen enthält - "True" zurückliefert?

Danke auch an Michael!

LG


----------



## Michael... (19. Okt 2012)

Stichwort: Regulärer Ausdruck, s. z.B. Regulärer Ausdruck ? Wikipedia

Der Ausdruck [0-9]+ bzw. \d+ (in Java Code \\d+) verlangt, dass die Zeichenkette mindestens (+) ein Zeichen aus dem Bereich 0 bis 9 ([0-9] bzw. \d) enthält. Da im Ausdruck keine weitere Zeichen definiert sind dürfen in der Zeichenkette auch keine anderen Zeichen vorkommen.


----------

