簡體   English   中英

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.

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