如果我通過eclipse中的運行配置傳遞一些變量作爲envirin變量,那麼它會自動轉義特殊字符。我想爲某些格式傳遞一些'\ n'和'\ r'字符,但是當我通過調試來檢查代碼中的值時,它們會自動轉換爲'\\ n'和'\\ r'。Java傳遞環境變量自動轉義特殊字符
String value= System.getenv("envPassed");
System.out.println("envPassed= "+value);
所以如果envPassed被給定爲 '喜\ n \ rhello' 在運行構型中,然後將它轉換爲 '喜\\ñ\\ r' 和輸出打印爲
hi\n\rhello
而輸出應該是
hi
hello
我們有辦法讓它工作嗎?
這似乎是「轉換」一詞的一個奇怪用法。據我所見,根本沒有任何轉換,你已經將'hi \ n \ rhello'作爲變量定義插入,並得到一個包含'hi \ n \ rhello'的字符串。 – Holger
嚴重!!,它甚至在這裏也將我的雙反斜槓轉換爲單個。我添加了一個更多的反斜槓,將其顯示爲2個斜槓 – sunder
輸出應該*不打印爲兩行。它應該打印爲「hi \ n \ rhello」。你提供了反斜槓,你有反斜槓。你回到了你所提供的。沒有轉換。在Java中,將這些轉義序列轉換爲行終止字符的唯一方法是使用字符串文字進行操作的Java編譯器,並且不涉及此過程。注意回車應該在換行之前。 – EJP