2013-11-02 408 views
2

我有一個奇怪的問題。用字符串替換字符串java

我打電話在我的應用程序的網絡服務和響應有時印像這樣在控制檯"\n"現在我想與空括號來取代它,所以它會被印像這樣""

等什麼我曾嘗試

String serverResponse = Util.callService(.....); 
System.out.println(serverResponse.replace("\"\\n\"","\"\""); 

但輸出仍然打印"\n"""

當我硬編碼字符串,它的工作原理

例如

String str = ""\"\\n\""; // equals to "\n" in console 
System.out.println(serverResponse.replace("\"\\n\"","\"\""); //prints "" 

是什麼問題?它是編碼的東西嗎?爲什麼第一個代碼不能與服務器響應?

注:我無法控制Web服務。

+1

從響應檢查十六進制: 爲(炭C:response.toCharArray()) 是System.out.print(整數。 toHexString(c)+「」);這應該打印22 5c 6e 22 – LINEMAN78

+0

你是正確的打印22 5c 6e 22。問題是什麼 ??我怎麼能替換字符串 – user4o01

+0

那麼靜態的「\」\\ n \「」字符串呢,它會返回相同的字符嗎? (他們不應該是,但你永遠不知道) – LINEMAN78

回答

0

我解決它,它需要4回斜線,而不是兩個:

String serverResponse = Util.callService(.....); 
System.out.println(serverResponse.replace("\"\\\\n\"","\"\"");