This question already has answers here:
Difference between \n and \r?
(9个答案)
2年前关闭。
我指的是this问题,并且理解\ n将光标移至下一行而不重置它,而\ r重置光标而不将其移到下一行。 \ r \ n在Windows中用作换行符。
因此,出于好奇,我将
输出1:
根据我的理解,这里
输出2:
但是我无法理解输出2。我认为这应该与输出1相同,因为如果
编辑:
这是this或this中未涵盖的其他问题
(9个答案)
2年前关闭。
我指的是this问题,并且理解\ n将光标移至下一行而不重置它,而\ r重置光标而不将其移到下一行。 \ r \ n在Windows中用作换行符。
因此,出于好奇,我将
\r\n
和\n\r
与Java中的其他值一起分配给字符串,并在Windows环境中的控制台中将它们打印出来。System.out.println("ABC\r\nDEF");
System.out.println("ABC\n\rDEF");
输出1:
ABC
DEF
根据我的理解,这里
\r
只是重置了光标并将其移动到同一行(第1行)的开头,而\n
将其前进到了下一行(第2行)。因此DEF
用新行打印。输出2:
ABC
DEF
但是我无法理解输出2。我认为这应该与输出1相同,因为如果
\n
将光标移到下一行(第2行),然后如果\r
将其重置并将其放在开头,同一行(在这种情况下可能是第2行),那么为什么在第2行未打印DEF
?编辑:
这是this或this中未涵盖的其他问题
最佳答案
这与Java无关,与控制台/终端/等无关。将输出转换为显示。
在Windows命令窗口中,规范的“行尾”编码为\r\n
。 Windows将其视为单个实体。
尽管这样做的历史原因是电传打印机的回车(将打印头向左移动)和换行符(将纸张前进一行),但就显示而言,在Windows中,\r\n
是一件“事情”。\n\r
不能以相同的方式识别为一个“事物”。但是它通过逐行处理每个字符。