16

Java中的\r回车和换页是什么意思?/f谁能举一个小例子说明我们何时必须使用这些类型的符号?

System.out.println("hello world \r rafter \n nafter \f fafter");

不知道上面那个是什么。

我得到的输出是:

hello world 
 r-after 
 n-after  f-after

我得到了\r新行和\n新行,并\f为我出现了一个框。

4

4 回答 4

35

您很少在现代应用程序中使用它们中的任何一个(孤立地)。

\r如果您熟悉老式手动打字机,(回车)听起来就是这样:它将“马车”(送纸的卷筒)移回行首。在终端(或类似终端)上,它将输出点移回行首,而不是(通常)向下移动一行。

\f是(如您所说)页符,它告诉老式打印机开始一个新页面。在计算机文档中,它有时用于表示分页符。

四舍五入,还有换行符(又名“换行符”)\n:。这意味着“向下移动”。在某些终端中,它只是向下移动一行而不执行回车;在其他人身上,两者兼而有之。

\n(LF, newline) 是 *nix 和衍生操作系统上的标准文本文件换行符。\r\n(CRLF) 是 DOS 和 Windows 上的标准文本文件换行符。在过去,\r(单独)是 Mac 上文本文件中的标准换行符,在 Mac OS X(它是 *nix 派生的)之前。

于 2013-09-26T10:38:27.657 回答
13

要查看差异,您必须从命令提示符运行代码。Eclipse 的控制台(以及其他 IDE 的类似控制台)不会模拟完整 TTY 终端的行为,并且将移至下一行,用于\r\n. 但是,在命令行上,\r只会将光标移回当前行的开头。当您想在不滚动的情况下显示程序的实时进度时,这非常方便。

换页信号更难预测,也没有那么有用。在某些情况下,它可能具有清除终端窗口的效果。

于 2013-09-26T10:38:18.457 回答
2

回车和换页是终端或打印机控制字符,在 Java 中没有任何意义。

在终端仿真中,当您打印 \r 时,下一个字符可能会打印在当前行的第一行(覆盖已经存在的内容)。

打印到终端时,换页可能会也可能不会清除屏幕。在打印机上,它应该会导致当前页面被弹出,以便在新页面上继续打印。

但是,如前所述,终端(仿真)和打印机都不关心控制字符是否由 Java 程序打印。

于 2013-09-26T10:41:03.510 回答
0

\f与 类似\n,不同之处在于新行缩进。

例如:“你好,很高兴见到你”

它给出输出:

 hello it was 
              great meeting you 
于 2019-10-14T08:44:45.903 回答