【发布时间】:2017-06-24 21:47:38
【问题描述】:
为什么回车会在我下面的代码中隐藏前面的字符“l”。
System.out.println("\tHello \tWor\nl\rd");
这是输出:
Hello Wor
d
【问题讨论】:
-
因为这就是回车的作用。请下一个问题。
标签: java escaping whitespace non-printing-characters
为什么回车会在我下面的代码中隐藏前面的字符“l”。
System.out.println("\tHello \tWor\nl\rd");
这是输出:
Hello Wor
d
【问题讨论】:
标签: java escaping whitespace non-printing-characters
它不是隐藏的,而是被覆盖的——你已经在代码中添加了“\n”。
\n 或多或少地输入。光标转到下一行。然后你有 l,这是写的(在行的开头)。然后你有\r,它告诉控制台将光标带到SAME 行的开头(即已经写了l 的地方)。然后你写 d,它会覆盖之前的 l。
将最后一个 \r 替换为 \n ,您将看到: 你好沃 l d
【讨论】:
打印字符串的结尾部分
Wor\nl\rd
意思是:
打印W、o、r,然后转到下一行的开头(\n),然后
打印l,
然后转到 same 行的开头 (\r) 和
打印d(从而覆盖l)。
\r 是 return 或 <CR>(回车,0x0D),而 \n 表示 新行 或 <LF>(换行, 0x0A)。
这些术语来自打字机 - 在行尾需要将马车(用一张纸)返回到右侧,然后执行“换行”。
【讨论】: