c#:字符串格式
本文关键字:格式 字符串 | 更新日期: 2023-09-27 18:06:31
我遇到了一个代码。有人能透露一下吗?如果有人觉得它有点基础,请友善一点。
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"
如果生成的符号数小于2,0,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}
它分裂成
0,2
-将数字10
格式化为10
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
是对齐部分,如果结果短于此,则用空格填充:X2
是formatString部分。这意味着数字将以十六进制(大写(格式格式化,最小宽度为2。如果生成的数字少于2位,则在左侧用零填充。
在这种特定情况下,对齐说明符是多余的,因为X2
已经指定了最小宽度2。
有关格式字符串的详细信息,请参阅此处:
复合格式
标准数字格式字符串