Carriage Return in Java

2025 年 3 月 29 日 | 阅读 3 分钟

前面带有反斜杠 (\) 的字符称为转义序列。它对编译器具有特殊含义。当在打印语句中遇到转义序列时,编译器会相应地解释它。这些用于指示对字符序列的替代解释。在转义序列中,回车符 (\r) 是其中之一。在本节中,我们将讨论Java 中的回车符

回车符 (\r)

在 Java 中,回车符由 \r 表示。它的 ASCII 值为 13。它的用途如下:

  • 它将光标移到当前行的开头,而不会移到下一行。
  • 当它与 \n 一起使用时,它会创建一个新行并将光标移到该新行的开头。
  • \r 和 \n 转义序列的组合用于在基于 Windows 的系统上表示标准换行符。

语法

字符串 text 将包含 "firstName" 的值,后跟回车符,然后是 "lastName"。

回车符示例

在字符串中使用回车符

在下面的 Java 程序中,我们定义并分配了两个字符串 name1 和 name2。两个字符串都包含 firstName 和 lastName。

在字符串 name1 中,我们使用了回车符 \r,它会将光标移回行首,然后再打印 lastName。

在字符串 name2 中,我们没有使用回车符,因此它会在单行中打印 firstName 和 lastName。

示例

编译并运行

输出

Elon
Musk
Elon Musk

用回车符替换换行符

在下面的 Java 程序中,我们使用了 String.replaceAll() 方法。它将所有换行转义序列 (\n) 替换为 \r\n。它允许我们将带有换行符的文本转换为带有回车符和行进的文本,适用于不同的平台或文件格式。

示例

编译并运行

输出

Elon Musk is a businessman. 

He is known for his key roles in Tesla.

让我们看另一个回车符的例子。

覆盖控制台输出

关于文本文件,特别是导出的 Windows 文本文件,字符可以保证 \r 和 \n 的正确行距。

示例

编译并运行

输出

Loading: 0%
Loading: 10%
Loading: 20%
Loading: 30%
Loading: 40%
Loading: 50%
Loading: 60%
Loading: 70%
Loading: 80%
Loading: 90%
Loading: 100%
Done!

每次更新都会替换先前的文本,而不是打印新行。

最佳实践

  • 使用 System.lineSeparator() 而不是硬编码 \r\n 或 \n。
  • 处理来自未知来源的文本时,请规范化字符串。
  • 在控制台更新中使用 \r,但要注意它在日志文件中的效果。
  • 在不同环境中进行测试以确保兼容性。

回车符 (\r) 和换行符 (\n) 转义序列之间的区别

回车符 (\r)

它将光标移到当前行的开头,而不会向前移到下一行。它模拟了打字机将字车移回左边距的动作。

换行符 (\n)

它将光标移到下一行。它源于打字机的行进功能,将纸向前移到下一行。

在现代计算中,\r\n 的组合通常用于表示行的结尾,特别是在 Windows 系统中。然而,基于 Unix 的系统通常只使用 \n 来表示换行。

在 Java 中,当打印到控制台时,\n、\r 和 \r\n 都将导致新行。写入文件时,只有 \r\n 才能确保跨不同操作系统的换行。


下一主题JDBC 选择题