我有一个字符串“0000_Clothing | 0000_Clothing_Men's | 0000_Clothing_Men's_Shirts”,我想把这个字符串拆分为“|”。
String CatArray[] = CatContext.split("|");
上面提到的代码是将字符串拆分为单独的字符,如0,0,0,0,_,C,包括|符号
我在这里缺少什么?
答案 0 :(得分:5)
|
是一个正则表达式元字符,将其转义为"\\|"
答案 1 :(得分:2)
Split方法需要正则表达式,你必须逃避|
你可以做任何一次
CatContext.split("\\|");
或
CatContext.split("[|]");
答案 2 :(得分:1)
请注意,public String[] split(String regex)需要正则表达式。
所以你应该逃避special char |
。转义正则表达式是由\
完成的,但在Java中,\
写为\\
。
当你逃避特殊角色时,你会告诉Java:
“请勿将|
视为特殊字符|
,将其视为常规字符|
”。
另一种解决方案是使用public static String quote(String s)“返回指定字符串的文字模式字符串”:
String[] CatArray = CatContext.split(Pattern.quote("|"));
答案 3 :(得分:1)
如果您不想处理转义管道(因为管道是特殊的正则表达式字符),那么您可以使用Pattern#quote
:
String[] catArray = CatContext.split(Pattern.quote("|"));
或者甚至更简单:
String[] catArray = CatContext.split("\\Q|\\E"));