簡體   English   中英

轉義序列的不一致行為

[英]Escape Sequence's inconsistent behavior

我很好奇為什么轉義序列在不同情況下會評估為不同的結果。

public class EscapeChars{

    public static void main(String args[]) {
        String sequence = args[0];
        System.out.println(sequence);
    }
}

輸入"//\\\\"輸出//\\ - 這是預期的,因為序列"\\\\"計算為\\

輸入"\\\\//"輸出\\\\// - 根據我對轉義序列的理解,我希望輸出為\\//

我想了解這種明顯不一致結果的原因。

如果您嘗試此代碼:

System.out.println("\/");

你會得到一個編譯錯誤(我用 jdk 1.8 測試過)。 錯誤說:非法轉義字符。 這意味着“/”無效。 由於您是在運行時輸入序列,所以這可能是顯示輸入結果的原因。

據我所知,你的 java 程序只是打印由 shell 傳遞給它的參數,或者任何執行它的程序,所以在打印時,轉義序列已經被 bean 處理,所以它不是一個爪哇問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM