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
为我出现了一个框。
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
为我出现了一个框。
您很少在现代应用程序中使用它们中的任何一个(孤立地)。
\r
如果您熟悉老式手动打字机,(回车)听起来就是这样:它将“马车”(送纸的卷筒)移回行首。在终端(或类似终端)上,它将输出点移回行首,而不是(通常)向下移动一行。
\f
是(如您所说)换页符,它告诉老式打印机开始一个新页面。在计算机文档中,它有时用于表示分页符。
四舍五入,还有换行符(又名“换行符”)\n
:。这意味着“向下移动”。在某些终端中,它只是向下移动一行而不执行回车;在其他人身上,两者兼而有之。
\n
(LF, newline) 是 *nix 和衍生操作系统上的标准文本文件换行符。\r\n
(CRLF) 是 DOS 和 Windows 上的标准文本文件换行符。在过去,\r
(单独)是 Mac 上文本文件中的标准换行符,在 Mac OS X(它是 *nix 派生的)之前。
要查看差异,您必须从命令提示符运行代码。Eclipse 的控制台(以及其他 IDE 的类似控制台)不会模拟完整 TTY 终端的行为,并且将移至下一行,用于\r
和\n
. 但是,在命令行上,\r
只会将光标移回当前行的开头。当您想在不滚动的情况下显示程序的实时进度时,这非常方便。
换页信号更难预测,也没有那么有用。在某些情况下,它可能具有清除终端窗口的效果。
回车和换页是终端或打印机控制字符,在 Java 中没有任何意义。
在终端仿真中,当您打印 \r 时,下一个字符可能会打印在当前行的第一行(覆盖已经存在的内容)。
打印到终端时,换页可能会也可能不会清除屏幕。在打印机上,它应该会导致当前页面被弹出,以便在新页面上继续打印。
但是,如前所述,终端(仿真)和打印机都不关心控制字符是否由 Java 程序打印。
\f
与 类似\n
,不同之处在于新行缩进。
例如:“你好,很高兴见到你”
它给出输出:
hello it was
great meeting you