在特殊字符上拆分字符串

时间:2013-05-06 06:43:59

标签: java string

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

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

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

我在这里缺少什么?

4 个答案:

答案 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"));