Java在控制臺輸出帶顏色字符的2種方式詳解
通過\033特殊轉義符實現
這種方法主要適用於Linux系統的控制臺,也能在Windows系統中的IDEA中實現,但在Windows系統的控制臺中卻是亂碼。
public class ColourTest { /** * @param colour 顏色代號:背景顏色代號(41-46);前景色代號(31-36) * @param type 樣式代號:0無;1加粗;3斜體;4下劃線 * @param content 要打印的內容 */ 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("控制臺顏色測試:"); System.out.println(getFormatLogString("[ 紅色 ]", 31, 0)); System.out.println(getFormatLogString("[ 黃色 ]", 32, 0)); System.out.println(getFormatLogString("[ 橙色 ]", 33, 0)); System.out.println(getFormatLogString("[ 藍色 ]", 34, 0)); System.out.println(getFormatLogString("[ 紫色 ]", 35, 0)); System.out.println(getFormatLogString("[ 綠色 ]", 36, 0)); } }
Linux中的測試效果
編譯後,在Linux系統上完美運行。
IDEA 中的測試效果
如下圖所示,在Windows系統上的 IDEA 中也能實現顏色效果,但請註意 產生顏色的 數字參數 與Linux中的有差異。Linux中同樣的代碼,在IDEA中運行後的實際顏色是和Linux中有部分不同,比如下圖中的綠色。
Windows控制臺測試結果
如下圖所示,輸出亂碼,無顏色效果。
通過org.fusesource.jansi實現
這種方法能在Windows控制臺和Linux中完美運行,且結果一致,但是在IDEA中沒有任何顏色效果。
<dependency> <groupId>org.fusesource.jansi</groupId> <artifactId>jansi</artifactId> <version>2.1.1</version> </dependency>
Windows控制臺測試結果
Linux中的測試效果
IDEA 中的測試效果
總結
到此這篇關於Java在控制臺輸出帶顏色字符的2種方式的文章就介紹到這瞭,更多相關Java控制臺輸出帶顏色字符內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 在SSM框架中將圖片上傳到數據庫中的實現代碼
- java利用pdfbox+poi往pdf插入數據
- Java aop面向切面編程(aspectJweaver)案例詳解
- 教你怎麼用Java操作Redis
- Easycode自動化springboot的curd