1

文字列が合法であることを確認したいint。これは、数字でなければならないことを意味します (「.」なし)。ただし、有効な値の先頭と後の両方にスペースを使用できます。次の例は、次のことを示しています。

"53" - good.
"5 " - good.
" 5" - good.
"5 3" - bad

私は試した(\\d|-\\d| \\d| -\\d)+

4

2 に答える 2

3

これを試すことができます:

^\\s*([+-]?\\d+)\\s*$

^文字列の先頭に一致し、

末尾のスペースの\\s*アカウント、

[+-]?可能性のある兆候の説明

$、それが文字列の終わりであることを保証します。

@Dukeling で指摘されているように、使用する場合はアンカー (^および$)は必要ありませんmatches()

于 2013-05-29T11:32:18.770 に答える
2

正規表現を使用する必要がありますか? を使用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.");
}
于 2013-05-29T11:57:29.710 に答える