c#:字符串格式

saa*_*aam 5 c# string

我遇到了一个代码.任何人都可以对此有所了解.如果有人发现它有点基本,那就好.

string str= String.Format("{0,2:X2}", (int)value);
Run Code Online (Sandbox Code Playgroud)

感谢您的时间.

Ily*_*nov 13

Xformat返回您的十六进制表示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)
Run Code Online (Sandbox Code Playgroud)

显示,我想以10十六进制格式化(索引0)然后20以数字方式显示(索引1),然后10以数字方式格式化(索引0).

0,2从半列的左侧部分指示应用于结果字符串的索引位置0和格式,而不是特定对象.所以这段代码,2

String.Format("{0,1} {1,2} {0,4}", 10, 20)
Run Code Online (Sandbox Code Playgroud)

将打印带有至少一个符号的第一个数字,第二个带有至少两个符号,然后再打印第一个带有至少四个符号的数字.如果结果字符串中的符号数量较少 - 它们将由空格填充.


Har*_*aid 6

{0,2:X2}
Run Code Online (Sandbox Code Playgroud)

它分裂成

  1. 0,2-格式化数1010
  2. X2- 将数字格式化10为十六进制值0A.

更新

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

结果: 0A

实例:http://ideone.com/NW0U26

从我的结论
,您可以更改"{0,2:X2}""{0:X2}",这里活生生的例子.

参考链接:MSDN