C# 设置字符串格式,就像设置数字值一样
我有一个字符串,我希望以与数值相同的方式格式化它。 例: 但我认为格式化它的唯一方法是将其解析为int,然后对其应用ToString(“000”)方法C# 设置字符串格式,就像设置数字值一样,c#,string,C#,String,我有一个字符串,我希望以与数值相同的方式格式化它。 例: 但我认为格式化它的唯一方法是将其解析为int,然后对其应用ToString(“000”)方法 string option = "2"; option = int.Parse(option).ToString("000"); 有更好、更直接的方法吗?这是否符合您的要求 string x = "2"; string formattedX = x.PadLeft(3, '0'); Console.WriteLine(formattedX);
string option = "2";
option = int.Parse(option).ToString("000");
有更好、更直接的方法吗?这是否符合您的要求
string x = "2";
string formattedX = x.PadLeft(3, '0');
Console.WriteLine(formattedX); //prints 002
不,没有内置机制将字符串“格式化”为数字。一些选择:
- 使用字符串函数(
,Pad
,Length
)确定应添加哪些字符Substring
- 解析为数字类型,并使用带有数字格式字符串的
ToString
- 使用reqular表达式提取数字并生成新字符串
没有一个“正确”的答案。在安全性(如果字符串不代表有效的整数怎么办?)、可读性、性能等方面,每种方法都有风险和好处。将其转换为整数有什么错?这就是你想让它表现出来的样子,为什么不这样对待它呢?你似乎找到了一种行之有效的方法。你对此有意见吗?问题是代码太多了吗?为什么不把它变成一个扩展方法呢?这是如何工作的<代码>字符串选项=2代码>?这甚至不应该编译。很抱歉,
X
返回十六进制,它应该是D
,如Donals answer中所示。@tinonw01如果应用程序运行缓慢,转换整数是您最不关心的问题。我同意,但我认为OP不担心字符串,如果它是一个数字。由于使用的是int.Parse
。顺便说一句,我认为正则表达式会更好。
string x = "2";
string formattedX = x.PadLeft(3, '0');
Console.WriteLine(formattedX); //prints 002