[英]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.