在正则中,空字符串肯定不是数字呀,怎么会返回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]+$"));
------解决方案--------------------*:零次或多次匹配前面的字符或子表达式。
+:一次或多次匹配前面的字符或子表达式。
改称+就好了