转义序列的不一致行为

时间:2018-02-22 06:33:32

标签: java escaping

我很好奇为什么逃逸测序会在不同情况下评估不同的结果。

public class EscapeChars{

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

输入"//\\" 输出//\ - 这是预期的,因为序列"\\"评估为\

输入"\\//" 输出\\// - 根据我对转义排序的理解,我希望输出为\//

我想了解这种明显不一致结果的原因。

2 个答案:

答案 0 :(得分:0)

如果您尝试此代码:

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

您将收到编译错误(我使用jdk 1.8进行了测试)。 错误说:非法转义字符。 这意味着“/”无效。 由于您是在运行时输入序列,因此这可能是显示输入结果的原因。

答案 1 :(得分:0)

据我所知,你的java程序只是打印shell传递给它的参数,或者执行它的任何程序,所以在打印它时,转义序列已经被bean处理了,所以它不是一个java问题。