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