Java输出彩色字符
前言
在絕大部分情況下我們?cè)诿钚薪K端或者控制臺(tái)所輸出的內(nèi)容都是黑白色的,但是在使用 Spring Boot 與 IDEA 時(shí)卻發(fā)現(xiàn)啟動(dòng)項(xiàng)目后在控制臺(tái)竟然出現(xiàn)了彩色字體,那么這是這么實(shí)現(xiàn)的呢,其實(shí)就是用到了?ANSI 轉(zhuǎn)義序列。
ANSI 轉(zhuǎn)義序列
ANSI 轉(zhuǎn)義序列(ANSI Escape codes)是一種帶內(nèi)信號(hào)(In-band signaling)的轉(zhuǎn)義序列標(biāo)準(zhǔn),用于控制視頻文本終端上的光標(biāo)位置、顏色和其他選項(xiàng)。在文本中嵌入確定的字節(jié)序列,大部分以 ESC 轉(zhuǎn)義字符和 [ 字符開始,終端會(huì)把這些字節(jié)序列解釋為相應(yīng)的指令,而不是普通的字符編碼。
固定格式
- 轉(zhuǎn)移字符?Esc,ASCII 碼為 27(十六進(jìn)制:0x1b)
- 左中括號(hào)字符?[,ASCII 碼為 91(十六進(jìn)制:0x5b)
- 最后以字符m收尾
后跟控制鍵盤和顯示功能的字母數(shù)字碼(區(qū)分大小寫)
Esc[Value;...;Valuem
支持設(shè)置的顯示模式包括文本屬性,前景色和背景色。
文本屬性
前景色
背景色
代碼實(shí)現(xiàn)(Kotlin)
fun main() {print("\u001b[4;31;42mHelloWorld!")}輸出結(jié)果:
注意
當(dāng)我們?cè)O(shè)置了轉(zhuǎn)義序列或者說是字符顏色等屬性之后,這個(gè)屬性會(huì)一直保留著,我們接下來的輸出會(huì)默認(rèn)使用這個(gè)格式,所以我們需要在設(shè)置當(dāng)前顯示屬性后,再重置一下所有屬性的轉(zhuǎn)義序列?\u001b[0m。
256種擴(kuò)展顏色集
前面介紹的前景色和背景色只有八種顏色,可供選擇的比較少,如果有對(duì)顏色的需求,這時(shí)我們可以使用 256 色模式。
- 前景色格式:Esc[38;5;#m
- 背景色模式:Esc[48;5;#m
字符?#?為上圖中的數(shù)值,例如:\u001b[38;5;10m,就設(shè)置為前景色為綠色
代碼示例(Kotlin)
fun main() {for (i in 0..15) {for (j in 0..15) {val number = i * 15 + jval str = String.format("%3d", number)print("\u001b[48;5;${number}m $str")print("\u001b[0m")}println()}}輸出結(jié)果:
參考
如何在命令行中顯示五彩斑斕的“黑”_青筆-CSDN博客?blog.csdn.net/weixin_37543731/article/details/102322738正在上傳…重新上傳取消
ANSI轉(zhuǎn)義序列?wiki.zhonghuashu.com/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97
總結(jié)
以上是生活随笔為你收集整理的Java输出彩色字符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么设置u盘背景 U盘背景设置教程
- 下一篇: 电脑里怎么看不到u盘启动 电脑无法从U盘