我正在尝试读取输入字符串 - 如果它符合预定义的模式,则应该返回它。如果输入不正确,则应抛出异常。
这是我到目前为止所拥有的。我的问题是,无论输入如何,它总是抛出异常。我在这里做错了什么?
public String readPostCode() throws InputMismatchException
{
Scanner in = new Scanner(System.in);
String postcode;
System.out.println("Please enter a Postcode");
postcode = in.next(this.pattern);
return postcode;
}
当我在 try/catch 语句中使用上述方法时,始终会捕获 InputMismatchException。
编辑:这是模式的定义:
public Pattern pattern = Pattern.compile( "[a-zA-Z]" +
"([0-9]|[a-zA-Z])" +
"(|[0-9]|[0-9][0-9]|[a-zA-Z]|[0-9][a-zA-Z])" +
" [0-9][a-zA-Z][a-zA-Z]");