文字列が合法であることを確認したいint
。これは、数字でなければならないことを意味します (「.」なし)。ただし、有効な値の先頭と後の両方にスペースを使用できます。次の例は、次のことを示しています。
"53" - good.
"5 " - good.
" 5" - good.
"5 3" - bad
私は試した(\\d|-\\d| \\d| -\\d)+
これを試すことができます:
^\\s*([+-]?\\d+)\\s*$
は^
文字列の先頭に一致し、
末尾のスペースの\\s*
アカウント、
[+-]?
可能性のある兆候の説明
は$
、それが文字列の終わりであることを保証します。
@Dukeling で指摘されているように、使用する場合はアンカー (^
および$
)は必要ありませんmatches()
。
正規表現を使用する必要がありますか? を使用Integer.parseInt(myString)
してキャッチできますNumberFormatException
。
try
{
Integer.parseInt(myString.trim()); // trim removes leading and trailing whitespace
//Will work for "53", " 5" and "5 "
System.out.println(myString+ " is an integer.");
}
catch (NumberFormatException ex)
{
System.out.println(myString+ " is not an integer.");
}