为什么回车会隐藏前面的字符?

时间:2017-06-24 21:47:38

标签: java escaping whitespace non-printing-characters

为什么回车会在我的下面的代码中隐藏前面的字符“l”。

System.out.println("\tHello \tWor\nl\rd");

这是输出:

    Hello   Wor
d

2 个答案:

答案 0 :(得分:0)

它没有被隐藏,被覆盖 - 你已经' \ n'在代码中。

\ n或多或少进入。光标转到下一行。然后你写了(写在行的开头)。然后你就是\ r \ n,它告诉控制台将光标移到SAME行的开头(即已写入l的位置)。然后你写d,它会覆盖之前的l。

将最后一个\ r替换为\ n,您将看到:\ n      你好Wor 升 d

答案 1 :(得分:0)

打印字符串的结尾部分

Wor\nl\rd

表示:

打印Wor,然后转到下一行的开头(\n),然后再 打印l
然后开始相同的行(\r)和
 打印d(从而覆盖l)。

\r 返回<CR>(回车,0x0D),而\n表示新行<LF>(换行,0x0A)。

这些术语来自打字机 - 在行的末尾需要将马车(带一张纸)返回到右侧,然后执行“换行”。