# Prüfen, ob String Buchstaben enthält



## Infostudent87 (10. Sep 2007)

Hallo,


ich habe einen String, der im Allgemeinen nur Ziffern enthält, also z.B. "234". Diesen möchte ich in einen int-Wert konvertieren. Jedoch haben ein paar wenige Strings am Ende noch einen Buchstaben, z.B. "234a", welche also nicht geparst werden können.

Meine Frage ist nun: Wie kann ich am günstigsten herausfinden, ob an der letzten Stelle des Strings ein Buchstabe oder eine Ziffer steht, ohne dass ich jetzt 26 Bedingungen hinschreiben muss ( if letztes zeichen = a, if letztes zeichen = b etc.).


Grüße,
Infostudent.


----------



## FelixB (10. Sep 2007)

Character.isLetter(char ch);


----------



## The_S (10. Sep 2007)

3 Möglichkeiten, die mir spontan einfallen:

1.) (Nur wenn wirklich nur das letzte Zeichen ein Buchstaben sein kann)


```
if (!Character.isDigit(str.charAt(str.length() - 1)) {
   // keine Zahl
}
```

2.)


```
try {
   Integer.parseInt(str);
}
catch (NumberFormatException nfe) {
   // keine Zahl
}
```

3.)


```
if (str.matches("[1-9]*")) {
	// alles Zahlen
}
```

bzw.


```
if (str.matches("\\d*")) {
	// alles Zahlen
}
```


----------



## P3AC3MAK3R (10. Sep 2007)

Die String-Methode "matches" könnte ebenfalls weiterhelfen:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#matches(java.lang.String)

Alternativ könntest Du auch die Exception fangen, die auftritt, wenn Du einen String, der nicht nur Ziffer enthält, nach int zu konvertieren versuchst, und darauf entsprechend reagieren.


----------

