在Java中,
“回车”表示为'\r'
和
“换行”表示为'\n'
。
但是Java不允许,
“回车”为'\u000d'
和
“换行”为'\u000a'
。
为什么?
最佳答案
Unicode转义序列比字符文字转义序列在源转换中更早地应用。 Unicode转义序列在此过程的很早就进行了转换-在发生任何其他词法之前,包括在检测到换行符之前。有关详细信息,请参见JLS 3.2。
因此,当您将\u000a
放入Java源文件中时,它的行为就像在其中放入实际的换行符一样-就编译器的其余部分而言,导致换行。
(我个人认为这是一个设计错误;我更喜欢C#方法,只允许在代码中非常特定的点使用Unicode转义序列,但这是另一回事。)