我有一個字符串值,其中包含反斜槓字符(\
)。我的目標是將其替換爲字符(_
)。如何從Java中的字符串中刪除反斜線?
我做了以下按在這一問題How to remove the backslash in string using regex in Java?
String x = "2\5\2017"; x = x.replaceAll("\\\\", "_");
提供的解決方案,但我總是得到(27
)作爲x
值。注意:在2和7之間存在未知字符。在控制檯中,我可以將它看作一個小方塊。
我有一個字符串值,其中包含反斜槓字符(\
)。我的目標是將其替換爲字符(_
)。如何從Java中的字符串中刪除反斜線?
我做了以下按在這一問題How to remove the backslash in string using regex in Java?
String x = "2\5\2017"; x = x.replaceAll("\\\\", "_");
提供的解決方案,但我總是得到(27
)作爲x
值。注意:在2和7之間存在未知字符。在控制檯中,我可以將它看作一個小方塊。
我覺得要重新定義你的輸入字符串:
String x = "2\\5\\2017"
那麼x
結果將是:
2_5_2017
這是由你造成的不是逃避你\
在x
("2\5\2017"
),如果你的\
不在x
中,它會認爲\5
和\201
(oc tal將會有3位數字)將會是octal number。所以:
"2\5\2017"
將顯示爲:
2??7
所以你應該UNESCAPE像@Harmlezz方式。
只需使用「\\」在您的字符串中添加「\」。然後用代之以「_」
String x = "2\\5\\2017"; x = x.replaceAll("\\\\", "_");
「\」是一個特殊的字符,看到「\」在我們的字符串,我們需要添加一個額外的「\」像「\\」在一個字符串。
瞭解更多關於Special Characters
正如Plirkee,AxelH和chengpohi提到的,原來的價值是不正確的。
我們設法從DB(2/5/2017)而不是(2 \ 5 \ 2017)獲取不同的表單,然後replaceAll工作。
您是否嘗試過兩種解決方案? ('replaceAll'和'replace')。 PS:你也需要在'x'中轉義''' - >'String x =「2 \\ 5 \\ 2017」;' – AxelH
在字符串中,反斜槓是一個轉義字符,意思是''2 \ 5 \ 2017「'被解釋爲4個字符,其中間的兩個ASCII值爲」5「和」201「(以八進制數字表示)。你需要在字符串文字中逃避你的反斜槓:''2 \\ 5 \\ 2017「' – 4castle
@AxelH是的,我做了替換和替換,我得到了同樣的結果。字符串值來自數據庫,因此它不是硬編碼的值來添加雙斜線。 – Salman