java String split 处理问题

public static void main(String args[]){
String s="a.txt";
String a[]=s.split(".");
System.out.println(a.length);
}
输出结果为0 不是2吗?

.在正则表达式里面是特殊字符,可以查看API Pattern

预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)

对于特殊字符,必须用\进行转义,

所以正确的分解为:String s="a.txt";
String a[]=s.split("\\.");-->第一个\是java本身对第二个\得转义,第二个\是对后面的.进行正则转义。

这样结果就为2了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-13
在里面输入的是正则表达式,应该是\.又因为\是JAVA中的转移字符,所以要写两个\。
即String a[]=s.split("\\.");
这样就对了。
第2个回答  2011-04-13
你写的"."有问题,是特殊字符,按照下面这种写法就好了。
String a[] = s.split("\\.");
你再试试看

参考资料:http://zhidao.baidu.com/question/93410131.html

第3个回答  2011-04-13
String a[]=s.split("[.]");

参考资料:sername