黑马程序员技术交流社区

标题: 正则表达式 [打印本页]

作者: 821728010    时间: 2013-6-3 12:21
标题: 正则表达式
本帖最后由 821728010 于 2013-6-5 20:16 编辑

public class MyDemo23 {
        public static void main(String[] args) {
                String str="zhangsan.lisi.wangwu";
                String reg="\\.";  
                String [] strs= str.split(reg);
                for (String s : strs){
                System.out.println(s);
                }
                }

}


如果用“,”分割的话reg设为“,就行了”。为什么用“.”分割必须写成“\\.”???
作者: shiweiCao    时间: 2013-6-3 14:24
本帖最后由 shiweiCao 于 2013-6-3 14:26 编辑

就是因为"." 在正则表达式中 是有特殊含义的
看分割这个方法的介绍:
声明: public String[] split(String s)
作用:  将字符串按照s进行切割,切割后的每一部分做为String数组的一个元素。        
在使用时注意正则的问题   这个点就是正则的一个表达式 , 代表任意字符, 你按照"."分割的话,那么最后的数组长度肯定是为0的.
我记得,前面有一个这样问题的帖子."\\." 就是java中的转义嘛,  特殊字符要输出是要转义的. 就是这个意思.

作者: shiweiCao    时间: 2013-6-3 14:30
http://bbs.itheima.com/forum.php ... mp;page=1#pid344620   
  就是这个帖子, 这里的回答挺多的 . 你看看吧.    黑马云青年为您回复
作者: 刘晓GGG    时间: 2013-6-3 20:59
split(reg)方法,API里写明了根据给定正则表达式的匹配拆分此字符串。“."这个字符在正则表达式的规范里也是需要通过转义字符去转义处理的,所以需要“\\.”这样写。
作者: 曹睿翔    时间: 2013-6-4 08:51
友情提醒:问题解决的话,就再次编辑,及时改为已解决,方便大家查阅





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2