簡體   English   中英

c#:字符串格式

[英]c#: string format

我遇到了一個代碼。 任何人都可以對此有所了解。 如果有人發現它有點基本,那就好。

string str= String.Format("{0,2:X2}", (int)value);

感謝您的時間。

X格式返回value 十六進制表示。

例如String.Format("{0:X}", 10)將返回"A" ,而不是"10"

如果您的十六進制表示少於兩個符號, X2將在左側添加

例如String.Format("{0:X2}", 10)將返回"0A" ,而不是"A"

0,2將添加空格的左側,如果所得到的符號數是小於2。

例如String.Format("{0,3:X2}", 10)將返回" 0A" ,但不返回"0A"

因此,如果結果只有一個符號,那么這個格式{0,2:X2}將以十六進制表示法的形式返回你的值,如果它只是一個符號則從左邊附加一個零,如果它是一個符號則從左邊附加空格。 在多次閱讀之后,您可以看到, ,2是冗余的,這種格式可以簡化為{0:X2}而不改變行為。

一些說明:

:分隔應用於該對象的索引編號和特定格式。 例如這段代碼

String.Format("{0:X} {1:N} {0:N}", 10, 20)

顯示,我想以十六進制格式化10 (索引0),然后以數字方式顯示20 (索引1),然后以數字方式格式化10 (索引0)。

0,2從半列的左側部分指示索引位置0和格式,2應用於結果字符串 ,而不是特定對象。 所以這段代碼

String.Format("{0,1} {1,2} {0,4}", 10, 20)

將打印帶有至少一個符號的第一個數字,第二個帶有至少兩個符號,然后再打印第一個帶有至少四個符號的數字。 如果結果字符串中的符號數量較少 - 它們將由空格填充。

{0,2:X2}

它分裂成

  1. 0,2 - 將數字10格式化為10
  2. X2 - 將數字10格式化為十六進制值0A

更新

String.Format("{0,2:X2}", (int)value); // where value = 10

結果: 0A

實例: http//ideone.com/NW0U26

我的結論
您可以將"{0,2:X2}"更改為"{0:X2}"此處為實例

參考鏈接: MSDN

根據MSDN ,格式字符串具有以下格式:

{index[,alignment][:formatString]}

我們可以在您的格式字符串中找到所有這些組件(最后兩個是可選的):

0是要使用的參數的索引
,2對齊部分,如果結果比這短,則用空格填充左邊。
:X2formatString部分。 這意味着數字將以十六進制(大寫)格式格式化,最小寬度為2.如果結果數字少於2位,則在左側用零填充。

在這種特定情況下,對齊說明符是多余的,因為X2已經指定了最小寬度2。

有關格式字符串的更多信息,請參見此處:
復合格式
標准數字格式字符串

暫無
暫無

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

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