控制台打印带格式内容

C#控制台项目:实现数字菱形打印功能 在探索 C# 语言的世界时,掌握基础是至关重要的。本章旨在为读者提供一个简单明了的C#基础练习入门,通过这些练习,初学者将能够逐渐熟悉C#的语法和编程逻辑。同时,这些练习也适合有一定基础的开发者作为复习,巩固他们的编程知识。我们会从C#中的一些基础概念开始,如变量声明、数据类型和基本运算符,然后逐步深入到数组、字符串操作以及方法的定义和调用。每个部分都会结合实际的编程练习,确保读者能够通过动手实践,加强对知识点的理解。 阅读详情

1. 场景

很多软件会在控制台打印带颜色和格式的文字,需要使用转义符实现这个功能。

2. 详细说明

2.1.转义符说明

样式开始:\033[+参数1+;+参数2+;+参数3+m

可以多个参数叠加,若同一类型的参数(如字体颜色)设置了多个,则以最后一个为准。

样式结束:\033[0m

0 是默认样式,也就是表示从此处往后的样式为默认样式

2.2.参数说明

其他格式:

参数值含义
0默认值
1粗体
3斜体
4下划线
7反显
9中划线

字体格式:

参数值含义
30黑色字体
90黑色字体+高亮
31红色字体
91红色字体+高亮
32绿色字体
92绿色字体+高亮
33黄色字体
93黄色字体+高亮
34蓝色字体
94蓝色字体+高亮
35紫色字体
95紫色字体+高亮
36青色字体
96青色字体+高亮
37白色字体
97白色字体+高亮

背景格式:

参数值含义
40黑色背景
100黑色背景+高亮
41红色背景
101红色背景+高亮
42绿色背景
102绿色背景+高亮
43黄色背景
103黄色背景+高亮
44蓝色背景
104蓝色背景+高亮
45紫色背景
105紫色背景+高亮
46青色背景
106青色背景+高亮
47白色背景
107白色背景+高亮

3. 代码实现

格式参数枚举类

public enum TextFormatterEnum {
    // no format
    DEFAULT(0),
    // other format
    BOLD(1),
    ITALIC(3),
    UNDERLINE(4),
    REVERSE_DISPLAY(7),
    LINE_THROUGH(9),
    // font format
    FONT_BLACK(30),
    FONT_BLACK_LIGHT(90),
    FONT_RED(31),
    FONT_RED_LIGHT(91),
    FONT_GREEN(32),
    FONT_GREEN_LIGHT(92),
    FONT_YELLOW(33),
    FONT_YELLOW_LIGHT(93),
    FONT_BLUE(34),
    FONT_BLUE_LIGHT(94),
    FONT_PURPLE(35),
    FONT_PURPLE_LIGHT(95),
    FONT_CYAN(36),
    FONT_CYAN_LIGHT(96),
    FONT_WHITE(37),
    FONT_WHITE_LIGHT(97),
    // background format
    BACKGROUND_BLACK(40),
    BACKGROUND_BLACK_LIGHT(100),
    BACKGROUND_RED(41),
    BACKGROUND_RED_LIGHT(101),
    BACKGROUND_GREEN(42),
    BACKGROUND_GREEN_LIGHT(102),
    BACKGROUND_YELLOW(43),
    BACKGROUND_YELLOW_LIGHT(103),
    BACKGROUND_BLUE(44),
    BACKGROUND_BLUE_LIGHT(104),
    BACKGROUND_PURPLE(45),
    BACKGROUND_PURPLE_LIGHT(105),
    BACKGROUND_CYAN(46),
    BACKGROUND_CYAN_LIGHT(106),
    BACKGROUND_WHITE(47),
    BACKGROUND_WHITE_LIGHT(107);

    int value;

    TextFormatterEnum(int value) {
        this.value = value;
    }
}

内容格式化类

import java.util.Arrays;

public class TextFormatter {
    private static final String EMPTY = "";
    private static final String SEPARATOR = ";";
    private static final String FORMATTER = "\033[%sm%s\033[0m";

    public static String formatText(String text, TextFormatterEnum... formats) {
        if (text == null || text.isEmpty()) {
            return EMPTY;
        }
        if (formats == null || formats.length == 0) {
            return text;
        }
        String[] array = Arrays.stream(formats).map(format -> String.valueOf(format.value)).toArray(String[]::new);
        String formatStr = String.join(SEPARATOR, array);
        return String.format(FORMATTER, formatStr, text);
    }
}

注:在 cmd 或 powershell 窗口,上述代码无法输出带格式内容,可以使用jansi这个库;如果使用 python,在输出到控制台前,先执行cls命令,再输出,即可进行带格式的内容打印。

4. 测试

测试代码:

public class Test {
    public static void main(String[] args) {
        System.out.println(TextFormatter.formatText("红、白字体同时设置,后设置的白色覆盖前面的红色,黑色背景带中划线和下划线粗体斜体",
                TextFormatterEnum.UNDERLINE, TextFormatterEnum.LINE_THROUGH, TextFormatterEnum.ITALIC,
                TextFormatterEnum.BOLD, TextFormatterEnum.FONT_RED_LIGHT, TextFormatterEnum.FONT_WHITE,
                TextFormatterEnum.BACKGROUND_BLACK) + TextFormatter.formatText("蓝色字体紫色背景带中划线和下划线粗体斜体+反显",
                TextFormatterEnum.FONT_YELLOW, TextFormatterEnum.UNDERLINE, TextFormatterEnum.LINE_THROUGH,
                TextFormatterEnum.ITALIC, TextFormatterEnum.BOLD, TextFormatterEnum.BACKGROUND_PURPLE,
                TextFormatterEnum.REVERSE_DISPLAY));
    }
}

IDEA 控制台输出:
在这里插入图片描述

Vivado 2018.3实战:用IDELAYE3和ISERDESE3搞定高速ADC数据采集(附仿真源码) 本文详细介绍了在Vivado 2018.3中使用Xilinx UltraScale架构的IDELAYE3和ISERDESE3原语实现高速ADC数据采集的实战方法。通过分析5GHz采样系统的时序挑战,提供从PCB布局到Vivado实现的完整解决方案,包括精密时序校准、多相位数据重组及系统级调试技巧,并附赠仿真源码助力工程师快速掌握高速数据采集技术。 阅读详情

相关推荐

linux 4.19在龙芯平台上编译出错解决方法

OS: Loongnix server 1.7 工具链为:系统自带的gcc-4.8.5 和 gcc-7.3 平台:3A3000/3A4000 源码:kernel: 4.19 编译步骤 ··· make loongson3_defconfig make -j4 ··· 出错信息: HOSTCC arch/mips/boot/compressed/calc_vmlinuz_load_addr arch/mips/boot/compressed/head.S: Assembler messages: arch/m

sense的专栏 1125

前端小知识:控制台打印(console)- 模拟Java日志打印、表格形式打印美化输出对象、代码运行时间统计

前端小知识:控制台打印(console):模拟Java日志打印、表格形式打印美化输出对象、代码运行时间统计

weixin_39651356的博客 6247

西门子PLC1200与CB1241模块的Modbus RTU从站配置全流程(附串口调试技巧)

本文详细介绍了西门子S7-1200 PLC与CB1241通信模块实现Modbus RTU从站配置的全流程,包括硬件接线规范、TIA Portal工程组态、通信指令编程及串口调试技巧。通过实战案例和常见错误处理方案,帮助工程师快速搭建稳定的工业通信系统,提升自动化设备的互联互通能力。

weixin_29165725的博客 325

浏览器控制台打印日志的方法汇总

该方法接受两个参数,第一个参数非false的情况下,输入第二个参数的错误内容。该方法会创建一个分组,后续打印的内容会折叠在这个分组内,需要配置。tableColumns(可选)一个数组,元素为需要输出的列表。message(必填)在控制台输出的警告内容,可文本或对象。message(必填)在控制台输出的错误内容,可文本或对象。message(必填)在控制台输出的错误内容,可文本或对象。tableData(必填)需要输出的数据,数组或对象。使用,调用后代表计时结束,输出时长。label(可选)输出时的标签。

z001126的博客 2453

ROS2 Jazzy 学习路线图(2026最新)

摘要: ROS2 Jazzy(LTS版)是2026年长期支持版本,仅适配Ubuntu 24.04。本文提供WSL环境下的学习路线图: 环境搭建(1-2天):配置WSL2+Ubuntu 24.04,安装ROS2 Jazzy及图形工具(VcXsrv、VS Code)。 核心概念(3-5天):掌握节点、话题、服务等通信机制,使用turtlesim和小海龟仿真实践。 开发实战(7-10天):Python/C++节点开发,结合RViz2、Gazebo等工具完成多节点通信和避障项目。 进阶应用(10-15天):导航(N

zheng_ruiguo的专栏 640

手把手教你用mitmproxy抓包抖音数据流(附Python脚本模板)

本文详细介绍了如何使用mitmproxy抓包抖音数据流,包括环境搭建、证书安装和Python脚本模板。从mitmproxy配置到抖音API解析,提供完整的移动端数据流分析方案,帮助开发者快速掌握数据抓取技术,适用于应用优化、竞品分析和安全审计等场景。

weixin_33670786的博客 307

前端常识-console控制台打印调试

本文介绍了在Web开发中使用console控制台进行打印调试的基本方法和常用技巧。读者可以学习console的基本语法和常用方法,以及如何使用console来排查开发过程中常见的调试问题。同时,本文还介绍了console的高级调试技巧和浏览器开发者工具,使开发者能够更快、更好地进行调试和分析。通过本文的学习,读者可以提高调试效率和准确性,更好地完成Web开发工作。

weixin_50523140的博客 5147

夜间灯光遥感数据介绍及下载汇总

夜间灯光遥感数据介绍及下载汇总

qq_43874102的博客 1万+

前端自定义控制台打印

如果碰到以下,多人协作项目,为了调试自己的代码,需要打印部分信息,单纯通过======或者*****等作为标志,分界线还是容易混乱,可以调取特殊api,在控制台打印出突出的信息。

qq_41376237的博客 1154

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1422

汽车IVI中控开发入门及进阶(九):显示屏

显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。正文:显示屏主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的种类可以分为:LCD液晶显示屏(TFT(薄膜晶体管)驱动的有源矩阵液晶显示,再细分IPS、TFT、SLCD,这几个子类)、LED显示屏(用 LED发光二极管作为背光光源)、OLED 显示屏。

码农17年的博客 2526

前端项目控制台(F12)打印出带样式的文字、图片(像百度一下一样)

前端项目控制台(F12)打印出带样式的文字、图片(像百度官网一样)

熟悉JS拼写的FE 1860

万字长文:YOLOv5+RK3588 NPU多线程加速全攻略——从理论到部署的终极优化

RK3588 NPU多线程加速优化教程摘要 本教程深入讲解了如何利用线程池技术优化RK3588 NPU上的YOLO目标检测模型推理性能。RK3588内置3个NPU核心,理论算力达6TOPS,为多线程优化提供了硬件基础。教程详细解析了线程池的核心组件(任务队列、工作线程、同步机制)和实现架构,包括类设计、初始化流程、工作线程逻辑(任务获取、NPU推理、结果存储三个阶段)以及任务提交/获取机制。通过预分配模型实例、线程绑定、流量控制等优化手段,实现了从单线程28FPS到多线程120FPS的显著性能提升,为边缘A

LXY_LOVE36的博客 1101

修改脚本输出格式

sys.stdout默认是映射到控制台,可以通过修改映射关系把打印操作重定向到其他地方,例如:可以将文件对象引用赋给sys.stdout,实现sys.stdout的重定向。print方法调用的实际是sys.stdout.write方法,所以自定义对象一定要实现write方法。阅读上面的源代码,print的file对象指向sys.stdout,即标准输出流,打印输出到控制台;可以直接给file对象赋值,使其指向文件对象,打印输出到文件;text1.log文件已经写入123。

yeyaozhifengqi的博客 298

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C语言控制台打印输出整齐问题

关键词:控制台\打印\制表符\空格\格式控制符\列\对齐\初衷: 经常写程序时需要打印输出,然后每次又打印的一团糟糕,我又是一个接近强迫症和略微完美主义者,碰巧好像网上没有我所需要的帖子,所以经过探索之后得到这些如何让自己在控制台打印输出整齐的Tips,同时和大家分享!鄙人水平不够,有错还望指教 首先你需要明白的影响打印整齐控制的因素: 1.制表符(8个空格) 2.键盘输入一个空格(一个空...

zhichao.yan的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python 如何让打印内容变得优雅(颜色打印)

Python 如何让打印内容变得优雅(颜色打印) 文章目录Python 如何让打印内容变得优雅(颜色打印)前言书写格式格式表对照表常见开头格式字体颜色更改字体底纹更改字体颜色+底纹更改为什么加结尾使用小技巧 前言 直接的print()打印输出的字体样式是大家最熟悉不过的,但有没有什么办法可以更改颜色等样式呢?答案是肯定的,我们能通过增加一部分代码来更改打印输出的样式,这样不仅能将打印输出的内容优雅的展示在控制台上,还能更好的区分打印的结果是哪段程序控制的。 书写格式 print(\033[显示方式;前景

贤哲XianZhe的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SpringBoot打印日志配置,打印出默认控制台一样的日志格式。

1.问题描述 如何打印出和SpringBoot默认日志格式一样的日志?根据网上的日志配置,日志是打印出来了没问题。效果是这样的。???? 可以看到没有默认的那么整齐,就觉得不顺眼,看着乱七八糟的不舒服(强迫症在作祟),那有问题就得解决,开干。 2.配置logback-spring.xml 这里直接复制到你的项目,修改下一个输出模块的包路径,改为你的项目包路径即可。 <?xml version="1.0" encoding="UTF-8"?> <configuration>

博博客客 3206

【java实现控制台打印表格】

背景 判断给定数据库是否可以连接,习惯做法是安装一个客户端,输入连接信息后连接测试。但是客户现场通常只提供一个linux系统,没有相关客户端。因此,需要一个能在linux上运行的数据库连接测试工具。我的实现思路:使用jdbc连接目标服务器,并执行一条给定的sql语句,能够连接成功则在控制台输出执行结果,连接失败则打印异常信息。 在实现该功能的过程中,对我来说最麻烦的是要在控制台输出表格,难点在于表格列宽相等以及表格内容要居中对齐。 效果 最终实现效果如下: 核心代码分享 分享此内容的目的有二: 为要实现

yangqin@1225的博客 8936

用java在控制台打印日历格式

以下是 用java编程,在控制台打印日历PrintDate.java文件内容如下,复制直接可用:package com.itjob.printdate;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;public cl

程序人生 1531

RT_Thread 调试笔记:串口打印、MSH控制台 相关

说明:记录日常使用RT_Thread 开发时做的笔记。

yutian0606的博客 7316

Cangjie Magic控制台打印:输出格式化与颜色支持

在AI Agent开发过程中,清晰直观的控制台输出对于调试和监控Agent执行流程至关重要。Cangjie Magic作为基于仓颉编程语言构建的LLM Agent DSL,提供了强大的控制台打印功能,支持丰富的输出格式化和颜色显示。本文将深入解析Cangjie Magic的控制台打印机制,帮助开发者充分利用这一功能提升开发效率。 ## 核心组件架构 Cangjie Magic的控制台打印功能主...

gitblog_00434的博客 1085

java如何在控制台打印制表符

Java控制台打印制表符的实践与技巧 在Java编程中,控制台输出是开发者与程序交互的重要方式之一。制表符(Tab)在控制台输出中扮演着重要的角色,它可以帮助我们格式化输出内容,使得输出结果更加清晰、易于阅读。本文将详细介绍如何在Java中使用制表符进行控制台打印,并提供实际的示例和解决方案。 制表符的基本概念 制表符(T...

weixin_37044527的博客 395

idea设置控制台打印彩色_在控制台中打印彩色文本

idea设置控制台打印彩色Hello, everyone????! I’m writing to share the solution of a problem that I had when I was working on a personal project, a Snake game in C++ running in console. After finishing the game logi...

weixin_26755331的博客 2406

控制台打印_如何实现可复用的控制台“艺术字”打印功能

之前在使用一些开源项目时,经常会看到在控制台输出项目大大的 LOGO。例如:hexo minos 主题启动时在控制台里会显示「MINOS」文案fis3 启动时也会有显示「FIS」添加这种大号「艺术字」可以达到「品牌露出」的效果,当然,也是程序员特有「情趣」的体现。 但它们的实现方式无外乎把编排好的 Logo 通过 console.log 输出。这种方式问题在于它几乎没有任何复用能力,而且一些需要...

weixin_35051558的博客 366

MyBatis Plus整合p6spy控制台打印美化格式的sql语句

2、mybatis-plus自身的打印sql脚本 mybatis-plus.configuration.log-impl 不能开启,否则p6spy打印不生效。p6spy配合mybatis plus可以在控制台打印出指定格式已执行的sql语句,便于开发人员分析和调试。下面介绍一下p6spy的简单配置和使用。四、在模块yaml文件中配置数据源连接,使用p6spy代理数据库驱动(com.p6spy.engine.spy.P6SpyDriver)1、以上配置使用方式可以放在项目的。

hkl_Forever的博客 3044

java控制台如何把一个对象的信息打印出来?

java控制台如何把一个对象的信息打印出来? 1、先引入任意一款对象转化成Jason的工具的jar包, 2、再通过  System.out.println(jSONObject);   //打印该jason对象 3、打印结果大致如下: {"amount":0,"echoCode":"","echoMessage":"","favAmount":0,"favApport

看不过的黑工坊 2万+
上一篇: 安卓OCR使用(Google ML Kit)
下一篇: MyBatis 插件开发
java_t_t
博客等级 码龄9年 171粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值