Java表达式的陷阱——正则表达式的陷阱
来源:互联网 发布:2017淘宝如何投诉盗图 编辑:程序博客网 时间:2024/05/18 03:36
5、正则表达式的陷阱
public class StringSplit {public static void main(String[] args) {String str = "java.is.funny.hello.world";String[] strArr = str.split(".");for ( String s : strArr ) {System.out.println(s);}}}上面本希望通过调用String提供的split()方法,以点号(.)作为分隔符来分割这个字符串,但运行该程序时发现没有任何输出内容。
对于上面程序的运行结果,要注意如下两点。
- String提供的split(String regex)方法需要的参数是正则表达式。
- 正则表达式中的点号(.)可匹配任意字符。
public class StringSplit {public static void main(String[] args) {String str = "java.is.funny.hello.world";String[] strArr = str.split("\\.");for ( String s : strArr ) {System.out.println(s);}}}输出结果为:
java
is
funny
hello
world
is
funny
hello
world
从JDK1.4开始,Java加入了对正则表达式的支持,String类也增加了一些方法用于支持正则表达式,具体有如下方法。
matches(String regex):判断该字符串是否匹配指定的正则表达式。
String replaceAll(String regex , String replacement):将字符串中所有匹配指定的正则表达式的子串替换成replacement后返回。
String replaceFirst(String regex , String replacement):将字符串中第一个匹配指定的正则表达式的子串替换成replacement后返回。
String[] split(String regex):以regex正则表达式的子串作为分隔符来分割该字符串。
以上四个方法都需要regex参数,这个参数就是正则表达式,因此使用这些方法时要特别小心。String提供了一个与replaceAll()功能相当的方法,如下所示:
replace(CharSequence target , CharSequence replacement):将字符串中所有的target子串替换成replacement后返回。
public class StringReplace {public static void main(String[] args) {String str = "java.is.funny.hello.world";String path1 = str.replace(".", "\\"); //使用replace()方法System.out.println(path1);String path2 = str.replaceAll("\\.", "\\\\");System.out.println(path2);}}输出结果为:
java\is\funny\hello\world
java\is\funny\hello\world
java\is\funny\hello\world
1 0
- Java表达式的陷阱——正则表达式的陷阱
- Java表达式的陷阱——表达式类型的陷阱
- Java表达式的陷阱——关于字符串的陷阱
- Java表达式的陷阱——多线程的陷阱
- QT的正则表达式陷阱
- java正则表达式陷阱
- Java表达式的陷阱——输入法、注释字符和转义字符的陷阱
- 一些表达式的陷阱
- 1.6 正则表达式陷阱
- python正则表达式 反斜杠(/)的麻烦和陷阱
- java表达式陷阱
- JAVA 条件表达式 陷阱
- Java表达式的陷阱——泛型引起的错误
- 表达式陷阱
- java 条件表达式(即三元操作符)的陷阱
- java 之 表达式中的陷阱
- java 字符串,表达式,等陷阱
- 关于Java表达式中的陷阱
- POJ 3304 Segments(线段相交)
- C#的补充数据类型System.Numerics.dll
- JS过滤HTML标签
- 双bfs求树的直径
- CUDA卷积操作—使用constant memory实现高斯滤波
- Java表达式的陷阱——正则表达式的陷阱
- linux软件管理和安装(yum命令--修改yum源)
- java多态性特点总结
- lazyLoad与节流
- 【GDOI2017第四轮模拟day1】数列
- 优雅的URL(伪静态)
- 紫书第一章训练1 A
- 欢迎使用CSDN-markdown编辑器
- C#矩阵的简单操作