如何在控制台中打印颜色?我希望在处理器发送数据时以颜色显示数据,在接收数据时以不同颜色显示数据
如果您的终端支持它,您可以使用ANSI转义码用于在输出中使用颜色。它通常适用于Unix shell提示;但是,它不适用于Windows命令提示符(尽管它适用于Cygwin)。例如,可以为颜色定义如下常量:
公共静态最终字符串ANSI_RESET=“\u001B[0m”;
公共静态最终字符串ANSI_BLACK=“\u001B[30m”;
公共静态最终字符串ANSI_RED=“\u001B[31m”;
公共静态最终字符串ANSI_GREEN=“\u001B[32m”;
公共静态最终字符串ANSI_YELLOW=“\u001B[33m”;
公共静态最终字符串ANSI_BLUE=“\u001B[34m”;
公共静态最终字符串ANSI_PURPLE=“\u001B[35m”;
公共静态最终字符串ANSI_CYAN=“\u001B[36m”;
公共静态最终字符串ANSI_WHITE=“\u001B[37m”;
然后,您可以根据需要引用这些
例如,使用上述常量,可以在支持的终端上输出以下红色文本:
System.out.println(ANSI_RED+“此文本为红色!”+ANSI_RESET);
更新:您可能想查看Jansi库。它提供了一个API并支持使用JNI的Windows。我还没有尝试过它;不过,它看起来很有希望
更新2:此外,如果您希望将文本的背景色更改为其他颜色,也可以尝试以下操作:
公共静态最终字符串ANSI_BLACK_BACKGROUND=“\u001B[40m”;
公共静态最终字符串ANSI_RED_BACKGROUND=“\u001B[41m”;
公共静态最终字符串ANSI_GREEN_BACKGROUND=“\u001B[42m”;
公共静态最终字符串ANSI_YELLOW_BACKGROUND=“\u001B[43m”;
公共静态最终字符串ANSI_BLUE_BACKGROUND=“\u001B[44m”;
公共静态最终字符串ANSI_PURPLE_BACKGROUND=“\u001B[45m”;
公共静态最终字符串ANSI_CYAN_BACKGROUND=“\u001B[46m”;
公共静态最终字符串ANSI_WHITE_BACKGROUND=“\u001B[47m”;
例如:
System.out.println(ANSI_GREEN_BACKGROUND+“此文本有绿色背景,但默认文本!”+ANSI_RESET);
System.out.println(ANSI_RED+“此文本有红色文本,但有默认背景!”+ANSI_RESET);
System.out.println(ANSI_绿色背景+ANSI_红色+“此文本有绿色背景和红色文本!”+ANSI_重置);