【问题标题】:Why carriage return hide the precede character?为什么回车隐藏前面的字符?
【发布时间】:2017-06-24 21:47:38
【问题描述】:

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

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

这是输出:

    Hello   Wor
d

【问题讨论】:

  • 因为这就是回车的作用。请下一个问题。

标签: java escaping whitespace non-printing-characters


【解决方案1】:

它不是隐藏的,而是被覆盖的——你已经在代码中添加了“\n”。

\n 或多或少地输入。光标转到下一行。然后你有 l,这是写的(在行的开头)。然后你有\r,它告诉控制台将光标带到SAME 行的开头(即已经写了l 的地方)。然后你写 d,它会覆盖之前的 l。

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

【讨论】:

    【解决方案2】:

    打印字符串的结尾部分

    Wor\nl\rd
    

    意思是:

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


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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-14
      • 2021-08-05
      • 2023-03-24
      • 1970-01-01
      • 2020-08-19
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多