String s="a1b2c3";
String sarr[]=s.split(".*[\\d].*");//
for(String var:sarr)
System.out.println("S: "+var);
System.out.println(sarr.length);
为什么sarr
为空?
如果您将//
行替换为以下内容:
String sarr[]=s.split("\\d");
为什么这会输出a b c
?
答案 0 :(得分:0)
将此字符串拆分为给定正则表达式的匹配项。
此方法的作用就像通过调用给定表达式的双参数split方法和 limit参数为零一样。因此,尾随空字符串不包含在结果数组中。
表达式.*[\d].*
匹配整个String,即a1b2c3
是要分割的内容,因此只剩下两个空字符串,可以保存到数组中,这种方法不会因为限制0
String sarr[]=s.split(".*[\\d].*", -1);
显示那两个空字符串
S:
S:
2
您可以通过打印来测试匹配
System.out.println(s.matches(".*[\\d].*"));
输出为true
。
表达式\d
与1
,2
和3
匹配,因此会进行拆分,从而产生[a, b, c]