java中把參數列表中原字符串轉換成轉義的字符串

今天一同學,想用java裏面main

的參數,而在這個參數裏面又有換行符,比如輸入

app "Hello\nWorld"
輸出:
Hello
World

目標:想要的結果是,輸出換行符(就是要換行),而事與願違,輸出竟然是源字符串"Hello\nWorld"

 

結果:先給出最終的做法,是這樣

public class app {
    public static void main(String[] args) {
        String output = args[0].toString().replace("\\n", "\n");
        System.out.print(output);
    }
}

 

調試:理應將參數args[0]理解成Hello加一個換行符然後再加上World。結果運行出來顯示的是源字符串"Hello\nWorld"。通過Eclipse調試,看到參數args[0]value索引5的那個字符竟然是"\\",這就是\的字符串轉義表示。通過下面的變量視圖,我們知道,args參數裏面的轉義符號"\"已經被自動轉換成"\\"了。爲了使\n組合成換行符,我們把args[0]\\\替換掉,就可以解決問題了。 

 

擴展:把路徑中的一個\轉換成兩個\\(爲了表示Windows

中的路徑),我們可以這樣做:

String strPath = getSomePath();
strPath.replace("\\", "\\\\");
...

 

結束語:replace是一個很好用的字符串函數,MFC中也有類似的CString類,不過那個Replace是首字母大寫的



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章