我想知道是否可以在Java代码中从IntelliJ的运行控制台中着色输出。比如,如果我有类似以下内容的东西:
System.out.println("Error: " + message);
我希望能将“错误”信息显示为红色,其余信息显示为不同的颜色。或者整行文字用一种颜色也可以,这比所有内容都用同一种颜色要好很多。
提前感谢!
编辑:感谢一位善良的网友,他给出了一个链接回到了这里 Stack Overflow - ANSI颜色转义序列列表。
虽然我认为还没有完全达到目标(IntelliJ比我能实现的颜色选项更多),但我已经能够使用8种颜色了。现在我创建了一个小助手函数,可以轻松地将文本打印到控制台:
public static void colorSystemOut(String text, Color color,
boolean bold, boolean underlined) {
StringBuilder cString = new StringBuilder("\033[");
if(color == Color.WHITE) {
cString.append("30");
}
else if(color == Color.RED) {
cString.append("31");
}
else if(color == Color.GREEN) {
cString.append("32");
}
else if(color == Color.YELLOW) {
cString.append("33");
}
else if(color == Color.BLUE) {
cString.append("34");
}
else if(color == Color.MAGENTA) {
cString.append("35");
}
else if(color == Color.CYAN) {
cString.append("36");
}
else if(color == Color.GRAY) {
cString.append("37");
}
else {
cString.append("30");
}
if(bold) { cString.append(";1"); }
if(underlined) { cString.append(";4"); }
cString.append(";0m" + text + "\033[0m");
System.out.print(cString.toString());
}
也许这不是最有效的方法,如果您有改进建议,请告诉我。但目前为止,我很高兴它能够工作!