簡體   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