欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一个String字符串的问题2 博客分类: Java 正则表达式 

程序员文章站 2024-03-13 14:15:45
...
背景:

今天遇到个问题:
String str = "clu";
String[] arrays0 = str.split(".");
String[] arrays1 = str.split("\\.");
log.info("####hi0" + gson.toJson(arrays0));
log.info("####hi1" + gson.toJson(arrays1));


output:
14:20:59.734 [main] INFO  com.clu.bleach.demo.StringDemo - ####hi0[]
14:20:59.737 [main] INFO  com.clu.bleach.demo.StringDemo - ####hi1["clu"]

一个是得到了空String数组,另一个则拥有一个字符的数组。为什么会这样呢?

分析:
String.split方法是接收正则表达式的,而默认情况下,split方法就把点号,当作正则表达式来处理了。点号在java的正则表达式里表示的是所有的字符。所以如果我们要以点号作为分隔符就必须对点号进行转义,通常用反斜杠作为转义字符"\.",所以上面我们就要split("\\.")来分隔,这个是因为java里不能识别反斜杠,必须要再用反斜杠进行转义才能做到编译不出错。

找了一篇java正则表达式的文章,如下:
http://www.tutorialspoint.com/java/java_regular_expressions.htm

还有一个中文版的:
http://www.runoob.com/java/java-regular-expressions.html

----EOF----
相关标签: 正则表达式