Java String.split(正则表达式)不起作用

时间:2013-04-10 22:14:10

标签: java string

我想在每次有|时拆分字符串,但split方法只接受正则表达式。正则表达式|在每个字母后分割字符串,这不是我想要的。 使用\u007C也可以做同样的事情。

我尝试使用\|,但这只是给了我:Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )

4 个答案:

答案 0 :(得分:7)

你需要做这样的事情:

\\|

原因是在正则表达式中为了“|”被视为“|”而不是作为正则表达式运算符,您需要“\”。但是在java中,你不能只在字符串中写“\”,因为它是字符串中的保存运算符。所以你必须做\\。希望能解释它。

答案 1 :(得分:3)

另一个建议是使用Pattern.quote("|")

答案 2 :(得分:2)

逃避反斜杠。你是一个Java字符串,它应该包含一个文字反斜杠。

"\\|"

答案 3 :(得分:2)

适合我:

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] */
    }
}