Java控制台换行符显示问题:如何正确打印换行?

如何在 java 控制台上正确显示换行符?

本例中,控制台打印结果不包含预期中的换行符,而是显示为一个空格。这是因为在 windows 系统中,"n" 换行符被解释为回车

换行("rn"),而仅使用 "n" 会导致光标移动到下一行而不会换行。

要解决此问题,可以使用转义序列在控制台上以原始格式显示换行符。通过将 "r" 和 "n" 分别替换为 "r" 和 "n",即可实现这一目的。

以下改进后的代码示例将正确显示换行符:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String str = "The data download task succeed. \r\nName:1";
        printWithEscapeSequences(str);

        // 验证是否已正确显示换行符
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter any key to continue...");
        scanner.nextLine();

        // 打印原始字符串以供参考
        System.out.println("Original string: " + str);
    }

    public static void printWithEscapeSequences(String str) {
        // 将 "\r" 和 "\n" 替换为 "\r" 和 "\n"
        String replaced = str.replace("\r", "\\r").replace("\n", "\\n");
        System.out.println(replaced);
    }
}