📅  最后修改于: 2023-12-03 15:25:45.670000             🧑  作者: Mango
在Java中,我们可以使用ANSI转义序列来打印出彩色文本。ANSI转义序列是由一系列的ASCII字符组成的,它们被用来改变输出文本的颜色、背景颜色和样式。
以下是一个简单的Java程序,实现了输出彩色文本的功能:
public class ColoredTextPrinter {
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";
public static void main(String[] args) {
System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET);
System.out.println(ANSI_GREEN + "This text is green!" + ANSI_RESET);
System.out.println(ANSI_YELLOW + "This text is yellow!" + ANSI_RESET);
System.out.println(ANSI_BLUE + "This text is blue!" + ANSI_RESET);
System.out.println(ANSI_PURPLE + "This text is purple!" + ANSI_RESET);
System.out.println(ANSI_CYAN + "This text is cyan!" + ANSI_RESET);
System.out.println(ANSI_WHITE + "This text is white!" + ANSI_RESET);
}
}
代码片段:
public class ColoredTextPrinter {
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";
public static void main(String[] args) {
System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET);
System.out.println(ANSI_GREEN + "This text is green!" + ANSI_RESET);
System.out.println(ANSI_YELLOW + "This text is yellow!" + ANSI_RESET);
System.out.println(ANSI_BLUE + "This text is blue!" + ANSI_RESET);
System.out.println(ANSI_PURPLE + "This text is purple!" + ANSI_RESET);
System.out.println(ANSI_CYAN + "This text is cyan!" + ANSI_RESET);
System.out.println(ANSI_WHITE + "This text is white!" + ANSI_RESET);
}
}
以下是ANSI转义序列的一些常用命令:
命令 | 描述
---|---
\u001B[0m
| 重置所有的样式
\u001B[30m
| 设置文本为黑色
\u001B[31m
| 设置文本为红色
\u001B[32m
| 设置文本为绿色
\u001B[33m
| 设置文本为黄色
\u001B[34m
| 设置文本为蓝色
\u001B[35m
| 设置文本为紫色
\u001B[36m
| 设置文本为青色
\u001B[37m
| 设置文本为白色
\u001B[40m
| 设置背景颜色为黑色
\u001B[41m
| 设置背景颜色为红色
\u001B[42m
| 设置背景颜色为绿色
\u001B[43m
| 设置背景颜色为黄色
\u001B[44m
| 设置背景颜色为蓝色
\u001B[45m
| 设置背景颜色为紫色
\u001B[46m
| 设置背景颜色为青色
\u001B[47m
| 设置背景颜色为白色
\u001B[1m
| 设置样式为粗体
\u001B[2m
| 设置样式为模糊
\u001B[3m
| 设置样式为斜体
\u001B[4m
| 设置样式为下划线
\u001B[5m
| 设置样式为闪烁
\u001B[7m
| 设置样式为反显
\u001B[8m
| 设置样式为隐藏
\u001B[nA
| 光标向上移动n行
\u001B[nB
| 光标向下移动n行
\u001B[nC
| 光标向右移动n行
\u001B[nD
| 光标向左移动n行
\u001B[y;xH
| 将光标移动到y行x列
值得注意的是,不是所有的控制台都支持ANSI转义序列,特别是在Windows的默认控制台上。如果您发现您的输出不是按预期的方式显示的,请换一个终端或添加外部库以支持ANSI转义序列。