2008-11-12 23 views
12

如何建立十六進制符號的轉義序列字符串。C#建立十六進制符號字符串

例子:

string s = "\x1A"; // this will create the hex-value 1A or dec-value 26 

我希望能夠到00之間建立與十六進制值的字符串到FF像這樣(在這個例子1B)

string s = "\x" + "1B"; // Unrecognized escape sequence 

也許有做的另一種方式十六進制字符串...

+0

我不認爲我理解 - 在這個例子中,你想要一個單一的字符與ANSI Code 26? – Grzenio 2008-11-12 14:37:06

+0

\ x和\ u都是unicode字符的轉義序列。 ``\ u03A9'`和`'\ x03A9'`都在控制檯輸出上打印omaga(`Ω`)符號。 – RBT 2016-10-15 02:05:57

回答

19

您不會在字符串中存儲十六進制值。

你可以,但它只是一個字符串,必須轉換爲整數或字節才能真正讀取其值。

您可以將十六進制值作爲文字分配給int或雖然字節:

Byte value = 0x0FF; 
int value = 0x1B; 

因此,它容易地將文字輸入16進制的方式傳遞到字符串:

string foo = String.Format("{0} hex test", 0x0BB); 

哪會創建這個字符串「126十六進制測試」。

但我不認爲這就是你想要的?

3

有一個用於十六進制的'\ u'轉義碼16位 unicode字符代碼。

Console.WriteLine("Look, I'm so happy : \u263A"); 
29

請儘量避免\x轉義序列。這很難閱讀,因爲停止的地方取決於數據。例如,這兩個字符串之間有什麼區別?

"\x9Good compiler" 
"\x9Bad compiler" 

在前者中,「\ X9」是選項卡 - 轉義序列停在那裏,因爲「G」不是一個有效的十六進制字符。在第二個字符串中,「\ x9Bad」都是一個轉義序列,留下一些隨機的Unicode字符和「編譯器」。

我建議你使用\ u轉義序列代替:

"\u0009Good compiler" 
"\u0009Bad compiler" 

(課程選項卡中,你會使用\t但我希望你明白我的意思...)

這是當然有一些原始問題,但已被回答:)

相關問題