2017-09-29 164 views
0

我在搜索關於在NetBeans中更改控制檯的輸出顏色,發現this後。 我嘗試了第一個答案,並完美地改變顏色。我嘗試了第五個答案,並且...也工作了。ANSI顏色之間的區別?

我的問題是:爲什麼爲每種顏色指定的字符串在第一個和第五個不同?

第一個答案的例子:

public static final String ANSI_BLUE = "\u001B[34m"; 

第五答案的例子:

public static final String BLUE = "\033[0;34m"; // BLUE 

我做了一些研究,但我實在想不出爲什麼。

我欣賞一個答案或幫助指示我理解它。

回答

1

反斜槓符號表示一個字節的本地表示八進制數字。符號表示16位十六進制Unicode表示。 \u001b\033都表示一個ESC,所以它們在這方面是相同的。

就這樣說,這兩個序列是不一樣的。第一個序列給出一個命令,34,這意味着「前景色藍色」。第二個序列提供了兩個用分號分隔的命令。第二個是34,但第一個是0,這意味着「重置」。

因此,第一個序列將顏色更改爲藍色,而第二個序列重置設置,然後將顏色設置爲藍色。

0

除了給出的答案,我想補充一點我在01​​鏈接中找到的信息。在頁面中,您可以看到構建轉義序列的不同方式及其每個部分的含義以及可能的值。作爲一個例子:

Esc[Value;...;Valuem
設置圖形模式: 調用由下列值指定的圖形功能。這些指定的功能保持有效,直到下一次出現此轉義序列。圖形模式更改屏幕上顯示的文本的顏色和屬性(如粗體和下劃線)。

文本屬性
0所有屬性關閉
1粗體上
4下劃線(僅單色顯示適配器)
5眨眼上
7反向視頻
8內藏式上