String getname(){
Scanner input = new Scanner(System.in);
String name;
System.out.println("Enter your name:");
name= input.next();
String name_pattern = "^[A-Za-z]+(\\s[A-Za-z]+)$";//this regex isnt validating Ben Smith
Pattern pattern = Pattern.compile(name_pattern);
Matcher regexmatcher = pattern.matcher(name);
if(!regexmatcher.matches()){
System.out.println("Name format not correct");
}
return name;
}
Мне также нужно вводить ввод снова и снова, пока не будет введен правильный формат. Как мне это сделать? Мое текущее регулярное выражение печатает «Формат имени не корректно», когда я вводил «Бен Смит», хотя он не должен печатать, потому что Бен Смит является допустимым вводом!Регулярное выражение для проверки: Имя LastName (например, Ben Smith)
Немного связанные: http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ – Biffen
На каком языке вы здесь? Это может быть актуально. – Sobrique
@MaryamMasood Вы пробовали отлаживать его? Или, по крайней мере, напечатать 'имя' между вводом и сопоставлением? Что касается «* снова и снова * [...] * Как мне это сделать? * ': Вы слышали о циклах? – Biffen