[英]How to replace single backslash(\) to double backslash(\\) in java?
[英]Backslash in java
我對保存在數據庫中的字符串有"311\\315_316\\336_337"
,例如: "311\\315_316\\336_337"
。 它們只有一個反斜杠,這在Java中是一個問題。 當我嘗試s.replaceAll("\\", "\\\\")
時不起作用,因為Java編譯器將字符串"311\\315_316\\336_337"
讀取為"311Í_316Þ_337"
。
我也嘗試對"311%C3%8D_316%C3%9E_337"
的編碼結果進行編碼和解碼,但是解碼結果仍然是"311Í_316Þ_337"
?
如何解決一個反斜杠的問題?
我想將此字符串傳遞給函數以執行拆分數字的過程,而反斜杠是分隔符,但是此問題使我無法這樣做。
數據庫中的數據可以,您無需替換任何內容。 直接用Java代碼編寫的字符串文字必須用另一個反斜杠轉義它們的反斜杠:
String s = "311\\315_316\\336_337";
System.out.println(s); // prints 311\315_316\336_337
但是,如果您從數據庫中獲得了這些值,則無需執行任何操作:
String s = resultSet.getString(1);
System.out.println(s); // should print 311\315_316\336_337
在Java字符串中,反斜杠字符是控制字符。 如果希望在字符串中包含文字反斜杠,則必須使用另一個反斜杠對其進行轉義。 例如"\\\\"
在Java中,反斜杠\\
具有特殊含義。 為了將其刪除,請使用另一個反斜杠\\\\
對其進行轉義
嘗試這個:
s.replaceAll("\\", "\\\\");
您也可以使用Unicode \\ = \\ u005c
示例:“文件夾\\ u005cSubfolder1 \\ u005cSubfolder2”
將導致字符串“ Folder \\ Subfolder1 \\ Subfolder2”
您可以在此處查看完整表: http : //jrgraphix.net/r/Unicode/0020-007F
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.