假如我現在給你一個任務,用Java分割一段字符串,比如一段IP地址:String IP = 127.0.0.1,讓你用”.”作為分隔符分割成四段,如果你沒有看完我的這篇文章或者以前沒有做過類似的事情或者記性不太好的話,你肯定想都不想直接就這樣: String[] items = IP.split(“.”); ,并想這也太簡單了吧,事情真的有你想的那么順利嗎?( 哦,忘了說了,運行的JDK環境是1.6),你會發現控制臺沒有打印出你期望的結果,你開始緊張,心跳加速,開始冒冷汗……
其實String的replace方法實現是通過Pattern這個類來實現的,看一下實現:
public String replace(CharSequence target, CharSequence replacement) {
return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
}
而Pattern是Java中的正則表達式的匹配工具,在正則表達式中”~!@#$%^&*[]”這些字符是特殊字符,比如”.”和”*”是匹配任意字符的字符,所以你想用”.”和”*”直接作為分隔符的話是不會有正確的結果的(=0),解決辦法是在前面添加”\\”,像這樣: String[] items = IP.split(“\\.”),這樣就OK了