A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张承富 中级黑马   /  2013-6-15 18:03  /  1361 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class StringTest
  2. {
  3.         public static void main(String[] args){
  4.                 String s="aaa.bbb.ccc.txt";
  5.                 String[] s1=s.split(".");
  6.                 sys(s1==null);
  7.                 if(s1!=null ){
  8.                         sys(s1[0]);
  9.                 }
  10.         }

  11.         public static void sys(Object o){
  12.                 System.out.println(o);
  13.         }
  14. }
复制代码
为什么不能用spilt切割"."

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

5 个回复

倒序浏览
String[] split(String regex)
          根据给定正则表达式的匹配拆分此字符串。

“.”这里的是点,所以要用反义字符\\,如  String[] s1=s.split("\\.");就可以了。
如果是“.”就是正则表达式中的“.”代表任意字符了。。。。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
split中当使用"+"、"?"、"\"、"*"、"^"、"."等特殊字符分割字符串时,若不进行特殊字符的转义,将得不到正确的结果,有些还会报错。
API中的描述,public String[]  spilt(String regex),从参数名即可看出,方法传入的参数不是任意的字符串,而是正则表达式,
spilt方法实质上是调用的matcher类的spilt方法,而"+"、"?"、"\"、"*"、"^"、"."、"$"等这些字符在正则表达式中都有特殊的意义,
使用的时候需要对其进行转义

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报 0 1
没有对特殊字符“.”进行转义,反斜杠\是转义字符,所以可以通过\把特殊字符“.”转义为普通的字符“.”;
但是反斜杠“\”也是一个特殊字符,也要对其进行转义,所以要再加一个\,
最后String[] s1=s.split("\\.");就可以了。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
  1. public class Test
  2. {
  3.         public static void main(String[] args)
  4.          {   
  5.             String s="ab.cd.ef.gh.ij";
  6.             String[] ss=s.split("\\.");
  7.             System.out.println(ss.length);
  8.         }
  9. }
复制代码
public string[] split(string regex)
这里的参数的名称是 regex ,也就是 regular expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式,看下split 方法的实现代码你就明白了:

public string[] split(string regex, int limit) {
return pattern.compile(regex).split(this, limit);
}
split 的实现直接调用的 matcher 类的 split 的方法。读者已经知道,“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。
只要将
String[] stings = stings.split(".");
改为
String[] stings = stings.split("\\.");
就可以了。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马