2013-11-15 57 views
1

我試圖將一個字符串拆分成一個字符串[]但我沒有得到預期的結果。 這裏有什麼問題?java字符串拆分沒有給出預期的結果

String animals = "dog|cat|bear|elephant|giraffe"; 
    String[] animalsArray = animals.split("|"); 

我期望animalsArray包含以下內容:

animalsArray[0] = "dog" 
    animalsArray[1] = "cat" 
    animalsArray[2] = "bear" 
    ... 

但它只包含:圍繞一個正則表達式

animalsArray[0] = "d" 
    animalsArray[1] = "c" 
    animalsArray[2] = "b" 
    ... 

回答

3

String.split()分裂,不只是一個普通的字符串,所以你必須逃避「|」 (因爲它具有特殊的含義),並做如下:

split("\\|") 
+0

我建議每個人都獨自離開,直到編輯他們已經嘗試過了,並驗證它的工作原理。我已經在不到一分鐘的時間裏看到了它的3個不同版本,只有一個版本應用了代碼化妝。 –

+0

@JeroenVannevel現在修復了。 :) – yshavit

+0

感謝您的解釋。它現在有效。 –

3

split該方法採用正則表達式作爲其參數,並|具有特殊的意義。用反斜槓逃避它,和轉義反斜線本身的Java:Java中的正則表達式

String[] animalsArray = animals.split("\\|"); 

​​列出的特殊符號。在「Logical Operators」部分查找|

0

在使用\\|

import java.util.Arrays; 

public class Main { 

public static void main(String[] args) { 
    String animals = "dog|cat|bear|elephant|giraffe"; 
    String[] animalsArray = animals.split("\\|"); 
    System.out.println(Arrays.toString(animalsArray)); 
} 
} 

輸出在控制檯一試:

[dog, cat, bear, elephant, giraffe] 
+0

謝謝,太簡單了:-) –

相關問題