Java 在特殊字符上拆分字符串

Java 在特殊字符上拆分字符串,java,string,Java,String,我有一个字符串“0000|u服装| 0000|u服装|男士| 0000|u服装|男士|衬衫”,我想在“|”上拆分这个字符串 上面提到的代码将字符串拆分为单独的字符,如0,0,0,0,C,包括|符号 我这里缺少什么?是一个正则表达式元字符,请转义它“\\\\”拆分方法需要一个正则表达式,您必须转义它| 你可以做任何一件事 CatContext.split("\\|"); 或 请注意,这需要一个正则表达式 因此,您应该避开|。转义正则表达式是由\完成的,但在Java中,\被写成\ 当您转义特殊字符

我有一个字符串“0000|u服装| 0000|u服装|男士| 0000|u服装|男士|衬衫”,我想在“|”上拆分这个字符串

上面提到的代码将字符串拆分为单独的字符,如0,0,0,0,C,包括|符号


我这里缺少什么?

是一个正则表达式元字符,请转义它
“\\\\”

拆分方法需要一个正则表达式,您必须转义它|

你可以做任何一件事

CatContext.split("\\|");

请注意,这需要一个正则表达式

因此,您应该避开
|
。转义正则表达式是由
\
完成的,但在Java中,
\
被写成
\

当您转义特殊字符时,您告诉Java:

“不要将
|
视为特殊字符
|
,将其视为常规字符
|

另一种解决方案是使用“返回指定字符串的文本模式字符串”:


String[]CatArray=CatContext.split(Pattern.quote(“|”)

如果不想处理转义管道(因为管道是一个特殊的正则表达式字符),那么可以使用
模式35; quote

String[] catArray = CatContext.split(Pattern.quote("|"));
或者更简单:

String[] catArray = CatContext.split("\\Q|\\E"));

还应该提到第一个反斜杠是为了转义第二个反斜杠(由于Java),它转义|(由于正则表达式语法):D
String[] catArray = CatContext.split(Pattern.quote("|"));
String[] catArray = CatContext.split("\\Q|\\E"));