2013-11-22 51 views
1

我有字符串,我想用反斜槓代替它的一個字符\如何在java中的字符串中插入反斜槓?

我試過以下,但沒有運氣。

engData.replace("'t", "\\'t") 

engData = engData.replace("'t", String.copyValueOf(new char[]{'\\', 't'})); 

輸入: 「不能」

預期輸出: 「可以\'t」 的

任何想法如何做到這一點?

+4

具有實際和預期輸出的樣本I/O將有助於更好地理解問題。 – SudoRahul

+0

請張貼輸入及其結果? –

+0

您是否試過engData.replace(「*您要替換的字符*」,「\\」) –

回答

1

嘗試這樣

engData.replace("'", "\\\'"); 

INPUT:不能

預期輸出:可以\ '噸

+0

由於它是在一個字符串中,所以'''不需要被轉義。此外,這將取代所有單引號。這會讓''''''''''''''''變成''''''''。 OP似乎一直在要求改變之前的單引號。 – Justin

+0

@Quincunx是的你是對的。我編輯了我的答案。謝謝 –

+0

@ Quincunx:是的。問題陳述沒有提到確切的期望。不夠清楚。但是,正如我們可以看到這是被接受的答案:) – prime

0

對我來說,以下工作:

class Foobar { 
    public static void main(String[] args) { 
    System.err.println("asd\\'t".replaceAll("\\'t", "\\\'t")); 
    } 
} 
0

對於您可以使用,str.replaceAll()將返回一個新字符串要求改變String實例:

String str = "./"; 
String s_modified = s.replaceAll("\\./", ""); 
+1

你也可以使用'str = str.replaceAll(「\\ ./」,「」);'這工作正常 – Vinith

1

String是Java不變。您需要將修改後的字符串分配給自己。

engData = engData.replace("'t", "\\'t"); // assign the modified string back. 
+0

這對我來說似乎是正確的。這個問題是錯誤的。 「我想用反斜槓替換它的一個字符」,但是你必須插入一個反斜槓,並且沒有字符被替換...... –

+0

沒有用反斜槓或任何東西替代。只是更改後的字符串沒有被分配回來,所以更改沒有得到反映。 – SudoRahul

+0

對不起英文! – AndroidDev

0

這是可能的regex

engData = engData.replaceAll("('t)","\\\\$1"); 

()指定group't將匹配包含't的任何字符串。最後,第二部分用反斜槓字符替換了這樣一個字符串:\\\\(四個因爲this)和第一組:$1。因此,你與\'t


同樣的事情更換任何子't可能沒有正則表達式,你嘗試過什麼(見this輸出):

engData = engData.replace("'t","\\'t"); //note the assignment; Strings are immutable 

String.replace(CharSequence, CharSequence)

3

試試這個..

String s = "can't"; 
    s = s.replaceAll("'","\\\\'"); 
    System.out.println(s); 

出來放:

can\'t 

這將取代所有的' 出現次數與\ '在你的字符串中。

相關問題