Not that this is the best idea to verify names. But assuming you’ve settled your requirements, then you can use next example:
if(input.matches("[a-zA-Z]+(\\-[a-zA-Z]+)?")) {
//OK
} else {
//Invalid
}
Several examples I’ve tested using this page:
String matches?
qwe Yes
qwe- No
qwe-qwe Yes
qwe-qwe- No
qw2e-qwe2 No
qwe-qwe-qwe No
solved How to create a regexpression for a name with just letters and one “-” i java? [closed]