带有|字符的Java奇怪拆分行为

带有|字符的Java奇怪拆分行为,java,regex,split,character,Java,Regex,Split,Character,我有一个小文件,其中包含一些我想用“|”字符分割的内容 当我在其他角色(如“>”)上尝试时,效果非常好,但在“|”角色上,出现了一些意想不到的结果 行本身(此处带有>字符) 添加>以添加>(1) 拆分“>”结果 [增编,加入(1)] 分割“|”结果 [a,d,d,e,r,e,|,t,o,,a,d,d,|,(,1,)] 为什么要拆分所有内容,甚至忽略字符串本身中的“|”字符? 提前感谢。您必须用反斜杠转义管道字符,因为它在正则表达式中的含义是特殊的。然后,必须为Java本身转义反斜杠。尝试:

我有一个小文件,其中包含一些我想用“|”字符分割的内容

当我在其他角色(如“>”)上尝试时,效果非常好,但在“|”角色上,出现了一些意想不到的结果


行本身(此处带有>字符)
添加>以添加>(1)

拆分“>”结果
[增编,加入(1)]

分割“|”结果
[a,d,d,e,r,e,|,t,o,,a,d,d,|,(,1,)]


为什么要拆分所有内容,甚至忽略字符串本身中的“|”字符?

提前感谢。

您必须用反斜杠转义管道字符,因为它在正则表达式中的含义是特殊的。然后,必须为Java本身转义反斜杠。尝试:

text.split("\\|")

必须用反斜杠转义管道字符,因为其含义在正则表达式中是特殊的。然后,必须为Java本身转义反斜杠。尝试:

text.split("\\|")

由于
|
是一个元字符,因此当您转义它时,它会起作用

String[]  array =youString.split("\\|");

因为
|
是元字符,所以转义时它会起作用

String[]  array =youString.split("\\|");

完美,半分钟内回答,效果绝对完美。非常感谢。很好,半分钟内回答,效果绝对完美。非常感谢你。