Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置字符串格式,就像设置数字值一样_C#_String - Fatal编程技术网

C# 设置字符串格式,就像设置数字值一样

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);

我有一个字符串,我希望以与数值相同的方式格式化它。 例:

但我认为格式化它的唯一方法是将其解析为int,然后对其应用ToString(“000”)方法

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