日期:2014-05-20  浏览次数:20652 次

在正则中,空字符串肯定不是数字呀,怎么会返回true呢
@Test
public void matchesTest() {
String str = "";
System.out.println(str.matches("[0-9]*"));
}

结果返回true。

不能理解了~~
空字符串肯定不是数字呀,怎么会返回true呢
------解决方案--------------------
你错了,[0-9]*表示的是0或0个以上的数字,str为空,说明包含于[0-9]*情况之中的
------解决方案--------------------
"[0-9]+"
------解决方案--------------------
正则写错了


String str = "";
System.out.println(str.matches("^[0-9]+$"));

------解决方案--------------------
*:零次或多次匹配前面的字符或子表达式。 
+:一次或多次匹配前面的字符或子表达式。
改称+就好了