入力文字列を読み取ろうとしています - 事前定義されたパターンに準拠している場合は、返されます。入力が正しくない場合は、例外をスローする必要があります。
これが私がこれまでに持っているものです。私の問題は、入力に関係なく、常に例外がスローされることです。ここで何が間違っているのでしょうか?
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]");