String str = "a.b.c";
String[] strs = s.split(".");为什么这两行执行后,strs还是null?但是我执行象
String str = "a.b.c";
String[] strs = s.split("b");
这样的语句没有问题。是不是"."不能用来作为分割标志。

解决方案 »

  1.   

    你这里有个错s.split(".");
    改成str.split(".");
    试了一下,还是不行啊,不知道了。
      

  2.   

    不好意思,笔误。应该是str.split(".");和str.split("b");
      

  3.   

    需要用到转移符    String[] strs = str.split("\\.");   用这就可以了
      

  4.   

    split的参数是个正则表达式,对于正则表达式,[.]是代表任意字符,如果要想用[.],那就像楼上说的,用转义符  String[] strs = str.split("\\.");
      

  5.   

    这样的特殊符号还有?,+,{,}等等,可以自己查看java文档
      

  6.   

    字符集  
    .  表示任意一个字符  
    [abc]  表示字符a,b,c中的任意一个(与a|b|c相同)  
    [^abc]  除a,b,c之外的任意一个字符(否定)  
    [a-zA-Z]  从a到z或A到Z当中的任意一个字符(范围)  
    [abc[hij]]  a,b,c,h,i,j中的任意一个字符(与a|b|c|h|i|j相同)(并集)  
    [a-z&&[hij]]  h,i,j中的一个(交集)  
    \s  空格字符(空格键, tab, 换行, 换页, 回车)  
    \S  非空格字符([^\s])  
    \d  一个数字,也就是[0-9]  
    \D  一个非数字的字符,也就是[^0-9]  
    \w  一个单词字符(word character),即[a-zA-Z_0-9]  
    \W  一个非单词的字符,[^\w]  如果你用过其它语言的正则表达式,那么你一眼就能看出反斜杠的与众不同。在其它语言里,"\\"的意思是"我只是要在正则表达式里插入一个反斜杠。没什么特别的意思。"但是在Java里,"\\"的意思是"我要插入一个正则表达式的反斜杠,所以跟在它后面的那个字符的意思就变了。"举例来说,如果你想表示一个或更多的"单词字符",那么这个正则表达式就应该是"\\w+"。如果你要插入一个反斜杠,那就得用"\\\\"。不过像换行,跳格之类的还是只用一根反斜杠:"\n\t"。