[英]replacing '\\' string with '\' in java
嗨,我們有一個像"ami\\\\303\\\\261o"
這樣的字符串。 我們想用\\
替換\\\\
。
我們嘗試過以下方法:
replace("\\\\", "\\")
replaceAll("\\\\", "\\")
但是我們得不到合適的輸出。
要在Java正則表達式中使用,您需要兩次轉義反斜杠:
resultString = subjectString.replaceAll("\\\\\\\\", "\\\\");
\\\\
表示“字面反斜杠”。 "\\\\"
對單個反斜杠進行編碼。 "\\\\\\\\"
"\\\\\\\\\\\\\\\\"
。 你必須記住反斜杠逃避。 采用
public class so {
public static void main(String[] args) {
String s = "ami\\\\303\\\\261o";
System.out.println(s);
s = s.replace("\\\\", "\\");
System.out.println(s);
}
};
每個反斜杠都會轉義以下反斜杠並解析為兩個文字字符串\\\\
和\\
另請注意, String.replace
返回修改后的字符串並保持原始字符串不變。
這里不需要正則表達式。 轉義斜杠並使用replace()
someString.replace('\\\\', '\\');
那是因為你的輸入String里面的\\\\
因為Java Escape Character而被內部替換為\\
。
這意味着如果輸出你的String而不對其執行任何正則表達式,它將如下所示: "ami\\303\\261o"
。
一般來說,你應該記得逃避每個轉義字符本身:
\ -> escaped = \\
\\ -> escaped = \\\\
\\\ -> escaped = \\\\\\
...and so on
試試下面的代碼
String val = "ami\\303\\261o";
val =val.replaceAll("\\\\", "\\\\");
System.out.println(val);
Outpout將是
AMI \\ 303 \\ 261o
在這里創建一個小提琴檢查出來
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.