Java表示式的陷阱——正則表示式的陷阱
阿新 • • 發佈:2018-12-25
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)方法需要的引數是正則表示式。
- 正則表示式中的點號(.)可匹配任意字元。
輸出結果為: javapublic 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); } } }
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後返回。
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\worldjava\is\funny\hello\world