簡體   English   中英

用字符代碼代替正則表達式替換字符串?

[英]Replace a string by character code instead of regex?

Java(或任何其他第三方庫)是否提供了用於基於字符代碼(當然在已知Charset內)而不是基於正則表達式的Charset替換的API? 例如,要將給定字符串中的雙引號替換為單引號,可以使用:

String noDoubles = containsDoubles.replace("\"", "'");

但是,雙引號的UTF-8字符代碼是U+0022 那么,有什么可以搜索U+0022字符實例並將其替換為單引號的東西嗎?

另外,我不僅在這里詢問雙引號或單引號,我還說的是字符代碼查找和任意2個字符的替換。

使用重載版本String#replace(char, char)接受字符。 因此,您可以像這樣使用它:

String str = "aa \" bb \"";
str = str.replace('\u0022', '\'');
System.out.println(str);  // aa ' bb '

只需使用unicode文字即可:

// I'm using an unicode literal for "
String noDoubles = containsDoubles.replace('\u0022', '\'');

只要您知道相應的代碼,以上內容就可以用於任何字符。

您還可以使用正則表達式。 Javadoc

\\ xhh十六進制值為0xhh的字符

\\ uhhhh十六進制值為0xhhhh的字符

因此,您可以這樣寫:

String noDoubles = containsDoubles.replace("\\u0022", "'");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM