Java 如何拆分由|字符分隔的字符串

Java 如何拆分由|字符分隔的字符串,java,string,pattern-matching,Java,String,Pattern Matching,我有以下格式的输入字符串 first | second | third | | | | |$sixth我想将此字符串拆分为一个字符串数组,其值为[first,second,third,,,,$sixth]。我正在使用下面的代码分割字符串,但这不起作用。请帮帮我 public String[] splitString(String input){ String[] resultArray = input.split("|") return resultArray; } 你能告诉我我做错了

我有以下格式的输入字符串
first | second | third | | | | |$sixth
我想将此字符串拆分为一个字符串数组,其值为[first,second,third,,,,$sixth]。我正在使用下面的代码分割字符串,但这不起作用。请帮帮我

public String[] splitString(String input){
String[] resultArray = input.split("|")
return resultArray;
    }

你能告诉我我做错了什么吗。

你需要用反斜杠转义
,因为它是一个特殊字符。这应该起作用:

String[] resultArray = input.split("\\|")

|
是一个元字符,表示它在正则表达式中表示其他内容。考虑到
split
将regex作为参数,它使用regex解释参数。您需要通过在所有元字符前面放置一个
\\
来“转义”所有元字符。在您的情况下,您将执行以下操作:

String[] resultArray = input.split("\\|");

我认为那不是真的。我会研究一下,如果是的话,撤销否决票。@tbodt我相信这是真的!我认为这是真的。它的意思是或在正则表达式中。@MartijnCourteaux没有说他不是;)