为什么此函数会将"e10"
作为true
返回? (应该是false
)
public boolean isNumber(String s) {
String pattern = "\\s*[+-]?((\\d+.?\\d*)|.\\d+)(e[+-]?\\d+)?\\s*";
return s.matches(pattern);
}
答案 0 :(得分:2)
由于((\\d+.?\\d*)|.\\d+)
。第二部分意味着.
- 任何事物的匹配器,\d+
- 至少一个数字。
如果您打算匹配实际的点字符,请改用\.
。