当前位置: 首页 > 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");
  • 输出结果
http://www.dtcms.com/a/48898.html

相关文章:

  • 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 四维数据可视化(已解决)
  • OCR PDF 文件是什么?它包含什么内容?
  • 鸿蒙开发:wrapBuilder来封装全局@Builder
  • 企业级Python后端数据库使用指南(简略版)
  • 13天 -- Redis 中如何实现分布式锁? Redis 的 Red Lock 是什么?你了解吗? Redis 实现分布式锁时可能遇到的问题有哪些?
  • fastjson1.2.24 CVE-2017-18349 漏洞复现
  • 【pytest框架源码分析二】pluggy源码分析之add_hookspecs和register
  • Golang的性能分析指标解读
  • 如何解决跨域请求的问题(CORS)?
  • 张岳教授:语言模型推理与泛化研究 | ICLR 2025 特邀报告与团队专场
  • CPU负载高告警问题的定位与优化建议