当前位置: 首页 > news >正文

Java 补充 - System.out.println 方法打印彩色文本(通过 ANSI 转义序列方式)

一、引入

  1. 在 Java 中,System.out.println 方法默认打印的是普通文本,无法直接打印彩色文本

  2. 可以通过 ANSI 转义序列在控制台中打印彩色文本


二、打印彩色文本

1、基本介绍
  1. ANSI 转义序列是一种标准,用于控制终端的光标位置、颜色等

  2. ANSI 转义序列以 \u001B 开头(\u001B 是 ESC 字符的 Unicode 编码),后面跟随控制代码

System.out.println("\u001B[【文本颜色代码】m【文本】\u001B[0m");
格式说明
\u001B[【颜色代码】m设置颜色
\u001B[0m重置颜色
  1. 除了设置文本颜色代码,还可以设置背景颜色代码
System.out.println("\u001B[【背景颜色代码】m【文本】\u001B[0m");
  1. 还可以同时设置文本颜色代码与背景颜色代码
System.out.println("\u001B[【文本颜色代码】;【背景颜色代码】m【文本】\u001B[0m");
  • 注:打印完彩色文本后,一定要重置颜色(\u001B[0m),否则后续输出也会受到影响
2、常用颜色代码
颜色文本颜色代码背景颜色代码
黑色3040
红色3141
绿色3242
黄色3343
蓝色3444
洋红色3545
青色3646
白色3747
3、演示
System.out.println("\u001B[31m红色文本\u001B[0m");
System.out.println("\u001B[32m绿色文本\u001B[0m");
System.out.println("\u001B[33m黄色文本\u001B[0m");
System.out.println("\u001B[34m蓝色文本\u001B[0m");

System.out.println("\u001B[41m红色背景\u001B[0m");
System.out.println("\u001B[42m绿色背景\u001B[0m");
System.out.println("\u001B[43m黄色背景\u001B[0m");
System.out.println("\u001B[44m蓝色背景\u001B[0m");

System.out.println("\u001B[31;42m红色文本,绿色背景\u001B[0m");
System.out.println("\u001B[33;44m黄色文本,蓝色背景\u001B[0m");
  • 输出结果

三、封装工具类

  • 为了方便使用,可以封装一个工具类来打印彩色文本
1、工具类
public class ColorLogger {

    // 颜色代码
    public static final String RESET = "\u001B[0m";
    public static final String BLACK = "\u001B[30m";
    public static final String RED = "\u001B[31m";
    public static final String GREEN = "\u001B[32m";
    public static final String YELLOW = "\u001B[33m";
    public static final String BLUE = "\u001B[34m";
    public static final String MAGENTA = "\u001B[35m";
    public static final String CYAN = "\u001B[36m";
    public static final String WHITE = "\u001B[37m";

    // 打印彩色日志
    public static void log(String color, String message) {
        System.out.println(color + message + RESET);
    }
}
2、测试
ColorLogger.log(ColorLogger.RED, "This is a red message");
ColorLogger.log(ColorLogger.GREEN, "This is a green message");
ColorLogger.log(ColorLogger.BLUE, "This is a blue message");
  • 输出结果

相关文章:

  • LLM大型语言模型(一)
  • 【期末考试应急处理】Linux 历年考试-试题及答案汇总
  • IDEA Tab 页设置多行显示
  • PXE批量网络装机与Kickstart自动化安装工具
  • RabbitMq高级
  • 如何在Node.js中处理文件上传?
  • 拼电商客户管理系统
  • VsCode + EIDE + OpenOCD + STM32(野火DAP) 开发环境配置
  • SuperMap iClient3D for WebGL三维场景与二维地图联动
  • 【算法】手撕二分查找
  • 二叉堆-堆排序
  • 使用Kubernetes部署Spring Boot项目
  • RAG组件:向量数据库(Milvus)
  • SQL命令详解之多表查询(连接查询)
  • 中间件专栏之MySQL篇——MySQL缓存策略
  • DeepSeek + Dify + Ollama + Docker + Linux 私有化部署,构建你的专属私人 AI 助手
  • Spring 源码硬核解析系列专题(扩展篇):Spring Batch 回滚机制源码解析
  • Linux kill 命令
  • 基于 Rust 与 GBT32960 规范的编解码层
  • matlab 四维数据可视化(已解决)
  • 响应式环保网站模板下载/培训机构优化
  • 帝国cms小说网站模板下载地址/seo推广怎么收费
  • seo关键词优化公司官网/东莞百度seo
  • 宠物医院网站开发/太原网站优化
  • 民众镇做网站公司/网络推广文案策划
  • 给蛋糕店做企业网站的文案/企业产品推广运营公司