少し助けが必要です。正規表現を使用するのはこれが初めてです。
したがって、ユーザーが入力できるのは、数字と他の2文字(ピリオド.
とコンマ)のみであることを確認したいと思います,
。
ユーザーがこのような文字で数字を入力するたびに、100A1
「間違った出力」が出力されます。これは素晴らしいことであり、それが私が望んでいることです。しかし、もしユーザ入力12.10
または10,000
あるいは10,000.50
、またプログラム出力「間違った出力。」
Pattern.matches()構文が正しく取得されていません。助けていただければ幸いです。ありがとうございました。
if (!Pattern.matches("[0-9]+", stringUserInput)) {
System.out.println("Wrong input");
}
この正規表現は機能するはずです:
\b[0-9,.]+\b
どこ:
\b
-単語の境界
[...]+
-角括弧内の任意の文字に1回以上一致します
0-9
-数字0から9
,
- コンマ
.
- 限目
正規表現の学習を始めたとき、https: //regexr.com/を使用して実験しました。正規表現が何をしているのかを説明する便利な機能があります。
うまくいけば、これが役立ちます!
編集:Javaで記述している場合は、おそらく円記号をエスケープする必要があります。したがって、最終結果は次のようになります\\b[0-9,.]+\\b
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加