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 回答