Java在控制臺(tái)輸出帶顏色字符的2種方式詳解
通過\033特殊轉(zhuǎn)義符實(shí)現(xiàn)
這種方法主要適用于Linux系統(tǒng)的控制臺(tái),也能在Windows系統(tǒng)中的IDEA中實(shí)現(xiàn),但在Windows系統(tǒng)的控制臺(tái)中卻是亂碼。
public class ColourTest {
/**
* @param colour 顏色代號(hào):背景顏色代號(hào)(41-46);前景色代號(hào)(31-36)
* @param type 樣式代號(hào):0無;1加粗;3斜體;4下劃線
* @param content 要打印的內(nèi)容
*/
private static String getFormatLogString(String content, int colour, int type) {
boolean hasType = type != 1 && type != 3 && type != 4;
if (hasType) {
return String.format("\033[%dm%s\033[0m", colour, content);
} else {
return String.format("\033[%d;%dm%s\033[0m", colour, type, content);
}
}
public static void main(String[] args) {
System.out.println("控制臺(tái)顏色測(cè)試:");
System.out.println(getFormatLogString("[ 紅色 ]", 31, 0));
System.out.println(getFormatLogString("[ 黃色 ]", 32, 0));
System.out.println(getFormatLogString("[ 橙色 ]", 33, 0));
System.out.println(getFormatLogString("[ 藍(lán)色 ]", 34, 0));
System.out.println(getFormatLogString("[ 紫色 ]", 35, 0));
System.out.println(getFormatLogString("[ 綠色 ]", 36, 0));
}
}
Linux中的測(cè)試效果
編譯后,在Linux系統(tǒng)上完美運(yùn)行。

IDEA 中的測(cè)試效果
如下圖所示,在Windows系統(tǒng)上的 IDEA 中也能實(shí)現(xiàn)顏色效果,但請(qǐng)注意 產(chǎn)生顏色的 數(shù)字參數(shù) 與Linux中的有差異。Linux中同樣的代碼,在IDEA中運(yùn)行后的實(shí)際顏色是和Linux中有部分不同,比如下圖中的綠色。

Windows控制臺(tái)測(cè)試結(jié)果
如下圖所示,輸出亂碼,無顏色效果。

通過org.fusesource.jansi實(shí)現(xiàn)
這種方法能在Windows控制臺(tái)和Linux中完美運(yùn)行,且結(jié)果一致,但是在IDEA中沒有任何顏色效果。
<dependency>
<groupId>org.fusesource.jansi</groupId>
<artifactId>jansi</artifactId>
<version>2.1.1</version>
</dependency>
Windows控制臺(tái)測(cè)試結(jié)果

Linux中的測(cè)試效果

IDEA 中的測(cè)試效果

總結(jié)
到此這篇關(guān)于Java在控制臺(tái)輸出帶顏色字符的2種方式的文章就介紹到這了,更多相關(guān)Java控制臺(tái)輸出帶顏色字符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA數(shù)字千分位和小數(shù)點(diǎn)的現(xiàn)實(shí)代碼(處理金額問題)
這篇文章主要介紹了JAVA數(shù)字千分位和小數(shù)點(diǎn)的現(xiàn)實(shí)代碼(處理金額問題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10
java實(shí)現(xiàn)發(fā)送email小案例
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)發(fā)送email小案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
詳解Java中的線程讓步y(tǒng)ield()與線程休眠sleep()方法
Java中的線程讓步會(huì)讓線程讓出優(yōu)先級(jí),而休眠則會(huì)讓線程進(jìn)入阻塞狀態(tài)等待被喚醒,這里我們對(duì)比線程等待的wait()方法,來詳解Java中的線程讓步y(tǒng)ield()與線程休眠sleep()方法2016-07-07
idea解決程序包不存在報(bào)錯(cuò)的八種解決方法
這篇文章主要介紹了idea解決程序包不存在報(bào)錯(cuò)的八種解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02
java實(shí)現(xiàn)memcache服務(wù)器的示例代碼
本篇文章主要介紹了java實(shí)現(xiàn)memcache服務(wù)器的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
Java方法參數(shù)是引用調(diào)用還是值調(diào)用?
Java方法參數(shù)是引用調(diào)用還是值調(diào)用?這是一個(gè)值得思考的問題。閱讀本文,找出答案2016-02-02

