繁体   English   中英

在特殊字符上拆分字符串

[英]Splitting a string on special char

我有一个字符串“ 0000_Clothing | 0000_Clothing_Men's | 0000_Clothing_Men's_Shirts”,我想将此字符串拆分为“ |”。

String CatArray[] = CatContext.split("|");

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

我在这里想念什么?

| 是正则表达式元字符,请将其转义为"\\\\|"

拆分方法需要正则表达式,因此您必须转义|

你可以做

CatContext.split("\\|");

要么

CatContext.split("[|]");

请注意, public String [] split(String regex)需要一个regex

因此,您应该转义特殊字符 | 转义符由\\完成,但是在Java中, \\编写为\\\\

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

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

另一个解决方案是使用公共静态字符串quote(String s) ,该字符串返回指定字符串的文字模式字符串 ”:

String[] CatArray = CatContext.split(Pattern.quote("|"));

如果您不想处理转义符(因为管道是特殊的正则表达式字符),则可以使用Pattern#quote

String[] catArray = CatContext.split(Pattern.quote("|"));

或更简单:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM