Java で電話アプリケーションを作成しており、電話番号が次のいずれかの形式に適合するかどうかを検証できる必要があります。
444 444 4444
444-444-4444
4444444444
このタスクを達成するために、私はこれを書きました:
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.print(str.matches("\\d{3}([-. ])?\\d{3}([-. ])?\\d{4}"));
}
何らかの理由で、 String メソッドはとmatches()
に対して完全に機能しますが、 を入力すると間違った答えを返します。スタック オーバーフローに関するいくつかの同様の質問を調べましたが、問題に対して正しく機能する修正がまだ見つかりません。誰かが私に欠けているものを教えてもらえますか?444-444-4444
4444444444
444 444 4444