如何在 Java 控制台中打印彩色文本?

javaobject oriented programmingprogramming更新于 2025/2/7 4:28:17

在使用 Java 终端应用程序时,个人可能经常希望打印彩色文本以提高输出的美感和可读性。ANSI 转义码可用于生成彩色文本,而不是 Java 默认终端通常产生的单色输出。当打印到控制台时,ANSI 转义码是唯一的字符集,它们通过改变文本的颜色、样式或背景来改变文本的外观。在本文中,我们将介绍如何使用 ANSI 转义码在 Java 控制台中打印彩色文本。我们将介绍两个示例,一个仅包含彩色文本,另一个包含彩色文本和不同的背景。

利用 ANSI 转义码来改变文本颜色。

使用转义码序列 u001B[xxm,其中 xx 代表 ANSI 颜色代码,使用 ANSI 转义码更改文本的颜色。以下是一些典型的 ANSI 文本颜色代码:

蓝色:\u001B[34m

青色:\u001B[36m

红色:\u001B[31m

绿色:\u001B[32m

白色:\u001B[37m

黄色:\u001B[33m

黑色:\u001B[30m

洋红色:\u001B[35m

必须在文本前添加相关的 ANSI 颜色代码才能应用特定颜色,并且必须在文本后附加重置代码 \u001B[0m 才能完成该过程。重置代码确保之后显示的文本以标准颜色显示。

利用 ANSI 转义码设置背景颜色。

ANSI 转义码除了可以更改文本颜色外,还可以更改文本的背景颜色。转义码序列 u001B[xx;yym 可用于修改背景颜色,其中 xx 代表背景颜色的 ANSI 颜色代码。以下是一些典型的 ANSI 背景颜色代码:

蓝色:\u001B[44m

青色:\u001B[46m

黑色:\u001B[40m

红色:\u001B[41m

白色:\u001B[47m

绿色:\u001B[42m

黄色:\u001B[43m

洋红色:\u001B[45m

要将特定的背景颜色应用于文本,请在文本前添加 ANSI 背景颜色代码,并在文本后附加重置代码 \u001B[0m。

让我们看两个给定的示例查询:

示例 1:在 Java 控制台中打印彩色文本

在这里,我们将专注于使用 ANSI 转义码生成彩色文本。以下是算法和代码示例:

算法

在 Java 控制台中打印彩色文本的步骤如下:

步骤 1: 为要使用的文本颜色创建 ANSI 转义码常量。

步骤 2: 要在要打印的文本前指定所需的颜色,请使用 ANSI 转义码常量。

步骤 3: 利用彩色文本后的 RESET 代码将格式恢复为原始状态。

示例

public class Main {
    public static void main(String[] args) {
        // 文本颜色的 ANSI 转义码常量
        String RESET = "\u001B[0m";
        String RED = "\u001B[31m";
        String GREEN = "\u001B[32m";
        String YELLOW = "\u001B[33m";
        
        // 将彩色文本打印到控制台
        System.out.println(GREEN + "此文本为绿色。" + RESET);
        System.out.println(YELLOW + "此文本为黄色。" + RESET);
        System.out.println(RED + "此文本为红色。" + RESET);
    }
}

输出

示例 2:在 Java 控制台中打印具有不同背景的彩色文本

算法

打印具有不同背景的彩色文本的步骤如下:

步骤 1: 为要使用的背景和文本颜色创建 ANSI 转义代码常量。

步骤 2: 在打印任何文本之前,请使用适当的背景和颜色代码。

步骤 3: 利用彩色文本后的 RESET 代码将格式恢复为原始状态。

示例

public class Main {
    public static void main(String[] args) {
        // 文本颜色和背景颜色的 ANSI 转义码常量
        String RESET = "\u001B[0m";
        String RED_TEXT = "\u001B[31m";
        String GREEN_TEXT = "\u001B[32m";
        String YELLOW_TEXT = "\u001B[33m";
        String BLACK_BG = "\u001B[40m";
        String WHITE_BG = "\u001B[47m";
        
        // 将带有背景的彩色文本打印到控制台
        System.out.println(RED_TEXT + BLACK_BG + "此文本为红色,背景为黑色。" + RESET);
        System.out.println(GREEN_TEXT + WHITE_BG + "此文本为绿色,背景为白色。" + RESET);
        System.out.println(YELLOW_TEXT + BLACK_BG + "此文本为黄色,背景为黑色。" + RESET);
    }
}

输出

结论

Java 终端输出可以使用 ANSI 转义码(一种强大的工具)进行格式化和着色。用户可以通过使用转义序列和颜色代码来改变文本的外观,使其更具美感并提高终端应用程序的可读性。要生成出色的控制台输出,请尝试各种配色方案和格式选择。要确保对 ANSI 转义码的充分支持,请务必在各种控制台环境中测试您的代码。


相关文章


有用资源