gpt4 book ai didi

java - 如何使用 System.out.println 在控制台中打印颜色?

转载 作者:行者123 更新时间:2023-12-01 22:26:41 26 4
gpt4 key购买 nike

如何在控制台中打印颜色?我想在处理器发送数据时以颜色显示数据,并在接收数据时以不同的颜色显示数据。

最佳答案

如果你的终端支持,可以使用 ANSI escape codes在输出中使用颜色。它通常适用于 Unix shell 提示符;但是,它不适用于 Windows 命令提示符(尽管它适用于 Cygwin)。例如,您可以为颜色定义如下常量:

public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_BLACK = "\u001B[30m";
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_BLUE = "\u001B[34m";
public static final String ANSI_PURPLE = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_WHITE = "\u001B[37m";

然后,您可以根据需要引用这些内容。

例如,使用上述常量,您可以在支持的终端上输出以下红色文本:

System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET);

更新:您可能想查看 Jansi图书馆。它提供 API 并支持使用 JNI 的 Windows。我还没有尝试过;然而,它看起来很有希望。

更新2:此外,如果您希望将文本的背景颜色更改为其他颜色,您也可以尝试以下操作:

public static final String ANSI_BLACK_BACKGROUND = "\u001B[40m";
public static final String ANSI_RED_BACKGROUND = "\u001B[41m";
public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m";
public static final String ANSI_YELLOW_BACKGROUND = "\u001B[43m";
public static final String ANSI_BLUE_BACKGROUND = "\u001B[44m";
public static final String ANSI_PURPLE_BACKGROUND = "\u001B[45m";
public static final String ANSI_CYAN_BACKGROUND = "\u001B[46m";
public static final String ANSI_WHITE_BACKGROUND = "\u001B[47m";

例如:

System.out.println(ANSI_GREEN_BACKGROUND + "This text has a green background but default text!" + ANSI_RESET);
System.out.println(ANSI_RED + "This text has red text but a default background!" + ANSI_RESET);
System.out.println(ANSI_GREEN_BACKGROUND + ANSI_RED + "This text has a green background and red text!" + ANSI_RESET);

关于java - 如何使用 System.out.println 在控制台中打印颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com