# Prüfen, ob ein String einen Bindestrich enthält



## slaytallicer (17. Jan 2009)

Hallo, 
ich erstelle gerade eine Prüfung für eine Namenseingabe. Diese sieht bisher wie folgt aus:

```
StringBuffer buffer = new StringBuffer(request.getParameter(PARAM_VORNAME));
				        int length = buffer.length();
				        for(int i=0; i < length; i++){
				            if(	
				            		(!Character.isLetter(buffer.charAt(i)))
				            	  ){
				            	result.add(newErrorMessage("Der Vorname darf nur aus Buchstaben bestehen!")
										.setPropertyname(PARAM_VORNAME));
				            }					
				        }
```

Allerdings würde ich gerne auch das Zeichen "-" erlauben, um Doppelnamen wie z.B. "Karl-Heinz" verwenden zu können.
Kann mir jemand sagen, wie ich so eine Überprüfung im Code hier einfüge?
Habe es mit der ".matches"-Funktion versucht, bin aber zu keinem Ergebnis gekommen.[/code]


----------



## SlaterB (17. Jan 2009)

String.contains(String)


----------



## Guest (17. Jan 2009)

Eine grobe Loesung waere:




```
public boolean test(CharSequence s){
	return Pattern.matches("([A-Za-zÄäÜüÖöß]|-)+", s);
}
```

Diese Methode liefert true fuer alle Zeichenketten (String, StringBuffer, StringBuilder) die aus Buchstaben und Bindestrichen bestehen. Das regex-pattern ist sehr grob, laesst also auch zB "---kaRLHein-z" durch. Ein feineres Pattern ist natuerlich moeglich, aber fuers erste solltest du hiermit weiterkommen.


----------



## slaytallicer (17. Jan 2009)

Hat geklappt,
vielen Dank!


----------

