基于Java语言规范的String Literal的澄清

时间:2013-12-08 22:17:40

标签: java

Java语言规范

中提到了它
  

字符串文字总是String类型(§4.3.3)。   行终止符出现在“和”之后是一个编译时错误   在结束时匹配“。

     

如§3.4所述,字符CR和LF从不是InputCharacter;每个都被认为是一个LineTerminator。

但我可以创建并运行以下语句

 public class StringOperation {
        public static void main(String ...args){
            String first = "\n";
            System.out.println(first);
        }

    }

我没有看到任何错误。感谢所有的见解。

2 个答案:

答案 0 :(得分:7)

语法"\n"是行终止符的有效转义表示形式,而不是实际的行终止符。 JLS阻止你做这样的事情:

String alphabet = "abcdefghijklm
   nopqrstuvwxyz";

相反,你必须这样做:

String alphabet = "abcdefghijklm" +
    "nopqrstuvwxyz";

答案 1 :(得分:3)

这指的是字符串中不允许实际的换行符:

String first = "

";

无法编译。 \ n是完全有效的转义换行符,而不是实际换行符。