如何用 String.Format 在左边补零
how to pad zero on left with String.Format
我尝试使用带前导零的 String.Format 字符串
Dim formatstring As String = ("{0,0}{1}{2,0:YYYY-MM-DD}{3}{4,0:00000}{5}{6,0:00000}{7}{8}{9}{10}{11}{12}")
用{4,0:00000} 左边填零
例子
014
到 00014
用{6,0:00000} 左边也填零
例子
547
到 00547
但这并没有发生,只是仍然显示 014 和 547
对于你想要发生的事情,在第 4 和第 6 个索引中传递的对象需要支持 IFormattable
接口。 From the docs:
If you specify formatString, the argument referenced by the format item must implement the IFormattable interface. Types that support format strings include:
- All integral and floating-point types. (See Standard Numeric Format Strings and Custom Numeric Format Strings.)
- DateTime and DateTimeOffset. (See Standard Date and Time Format Strings and Custom Date and Time Format Strings.)
- All enumeration types. (See Enumeration Format Strings.)
- TimeSpan values. (See Standard TimeSpan Format Strings and Custom TimeSpan format Strings.)
- GUIDs. (See the Guid.ToString(String) method.)
您的值是 014
,而不是简单的 14
,这意味着您所拥有的已经是一个字符串。 String 类型不 实现 IFormattable。要使其正常工作,您需要首先将字符串解析为整数或类似类型。
我尝试使用带前导零的 String.Format 字符串
Dim formatstring As String = ("{0,0}{1}{2,0:YYYY-MM-DD}{3}{4,0:00000}{5}{6,0:00000}{7}{8}{9}{10}{11}{12}")
用{4,0:00000} 左边填零
例子
014
到 00014
用{6,0:00000} 左边也填零
例子
547
到 00547
但这并没有发生,只是仍然显示 014 和 547
对于你想要发生的事情,在第 4 和第 6 个索引中传递的对象需要支持 IFormattable
接口。 From the docs:
If you specify formatString, the argument referenced by the format item must implement the IFormattable interface. Types that support format strings include:
- All integral and floating-point types. (See Standard Numeric Format Strings and Custom Numeric Format Strings.)
- DateTime and DateTimeOffset. (See Standard Date and Time Format Strings and Custom Date and Time Format Strings.)
- All enumeration types. (See Enumeration Format Strings.)
- TimeSpan values. (See Standard TimeSpan Format Strings and Custom TimeSpan format Strings.)
- GUIDs. (See the Guid.ToString(String) method.)
您的值是 014
,而不是简单的 14
,这意味着您所拥有的已经是一个字符串。 String 类型不 实现 IFormattable。要使其正常工作,您需要首先将字符串解析为整数或类似类型。