我想确保一个字符串是合法的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.");
}