1. 程式人生 > >java中用split()方法分割字串--用特殊字元分割得不到想要的結果的情況

java中用split()方法分割字串--用特殊字元分割得不到想要的結果的情況

java中,分割字串可以使用split()方法來實現分割。

	String str1 = "aabccbdd";
	String[] Str1Array = str1.split("b");//結果Str1Array:[aa, cc, dd]

上面的例子中可以成功的將字串用“b”來進行分割,得到可與其的結果。

    但是又是偶用特殊字元來分割是得不到自己想要的結果的,如下例子所示:

	String str2 = "aa|cc|dd";
	String[] Str2Array = str2.split("|");//結果Str2Array:[, a, a, |, c, c, |, d, d]
    預期得到的陣列應該是[aa, cc, dd]這樣,但是顯示的結果是這樣的:[, a, a, |, c, c, |, d, d]。

    這個是因為|是特殊的字元,這個字元分割需要加上轉義字元,才能得到我們想要的結果,如下例子所示:

	String str3 = "aa|cc|dd";
	String[] Str3Array = str3.split("\\|");//結果Str3Array:[aa, cc, dd]

    總結

    1.字元"|","*","+"都得加上轉義字元,前面加上"\\"。
    2.而如果是"\",那麼就得寫成"\\\\"。
    3.如果一個字串中有多個分隔符,可以用"|"作為連字元。

    比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每個字串分開。這樣就把字串分成了3個子字串。

    還有一些情況,比如replaceAll方法中,想將()括號去掉也是需要加上轉義字元的,因為這些字元跟正則表示式中的符號衝突,所以在非正則的使用方式中,需要用“\\”來進行轉義。