簡體   English   中英

字符串格式和十六進制字符

[英]String format and hex chars

誰能解釋為什么這不起作用:

string f = string.Format("\\x{0:00}{{0}}", 5);
string o = string.Format(f, "INSERT TEXT");
System.Diagnostics.Debug.WriteLine(f + " : " + o);

輸出是:

\x05{0} : \x05INSERT TEXT

為什么\\ x05沒有被替換?

參數的格式應該在格式說明符中設置,否則你只是插入一個文字“\\ x”。 像這樣:

// "5" as a lowercase 2-digit hex
string f = string.Format("{0:x2}{{0}}", 5);

不要混淆如何在源代碼中表示十六進制文字與在格式化字符串中打印的內容混淆,它們是不同的東西。

要將字符串放在字符串中,只需確保編譯器知道它是一個字符。

string f = string.Format("{0}", (char)5);
string g = string.Format("{0}", Convert.ToChar(5));
string h = string.Format("{0}", char.ConvertFromUtf32(5));

或者你可以從一個真正的char開始:

string i = string.Format("{0}", '\x05');
string j = string.Format("{0}", '\u0005');
string k = string.Format("{0}", '\U00000005');

隨便挑選。

這是你需要的嗎?

  int x = 5;
  string f = string.Format("\\x{0:x2}{1}", x, "INSERT TEXT");
  Console.WriteLine(f);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM