2013-04-10 103 views
3

我想在每次有一個|時分割一個字符串,但split方法只接受一個正則表達式。正則表達式|在每個字母后面分割字符串,這不是我想要的。 使用\u007C也做同樣的事情。Java String.split(正則表達式)不起作用

我試過使用\|,但這只是給我:Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\)

回答

7

你需要做這樣的事情:

\\| 

的原因是,爲了讓正則表達式「|」被視爲「|」而不是作爲一個正則表達式運算符,您需要「\」。但在java中,你不能只在字符串中寫「\」,因爲這是一個字符串中的保存操作符。所以你必須做\\。希望解釋它。

2

退出反斜槓。你在一個Java字符串中,它應該包含一個文字反斜槓。

"\\|" 
2

Works的我:

import java.util.Arrays; 

public class Testing { 
    public static void main(String[] args){ 
     String word= "abc|def"; 
     String[] splitted = word.split("\\|"); 
     System.out.println(Arrays.toString(splitted)); /* prints: [abc, def] */ 
    } 
} 
3

另一種建議是使用Pattern.quote("|")