澄清

2013-12-08 202 views
3

它在Java语言规范澄清

提到字符串文字总是的字符串(§4.3.3)类型。 在结束匹配之前出现“and ”之后出现线路终结符时出现编译时错误。

如§3.4所述,字符CR和LF永远不是InputCharacter;每个被认为构成一个LineTerminator。

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

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

    } 

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

回答

7

语法"\n"是行结束符的有效转义表示形式,而不是实际的行结束符。该JLS使你不能做这样的事情:

String alphabet = "abcdefghijklm 
    nopqrstuvwxyz"; 

相反,你必须做的:

String alphabet = "abcdefghijklm" + 
    "nopqrstuvwxyz"; 
3

什么,这是指的是一个实际的换行符是不是在你的字符串允许:

String first = " 

"; 

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