C#字符串格式给出错误的结果

时间:2017-09-08 16:42:37

标签: c# format

我尝试使用以下格式格式化6位数的字符串:

1234年至1256年。

我使用以下内容:

string.Format("123456", "{0000/00}");

结果123456

3 个答案:

答案 0 :(得分:2)

尝试类似

的内容
var number = int.Parse("123456");
var formattedNumber = number.ToString("####/##", CultureInfo.InvariantCulture);

编辑以包括零填充(如果需要):

var number = int.Parse("123456");
var formattedNumber = number.ToString("####/##", CultureInfo.InvariantCulture).PadLeft(7,'0');

对于低于10的任何数字(即" 000009"),您仍然会遇到问题,显示为0000/9。在下面你可能会更好地使用子字符串修改。

var text = "123456";
var formattedNumber = text.Substring(0, 4) + "/" + text.Substring(4, 2);

答案 1 :(得分:0)

如果您使用数字,我会使用上面的@ rob-s&#39示例。如果您正在处理实际的字符串,那么您可以使用以下代码示例。

var value = "123456";
var index = value.Length - 2;
var formattedValue = $"{value.Substring(0, index)}/{value.Substring(index)}";
Console.WriteLine(formattedValue);

您的输出将与您在问题中描述的内容相似。

1234年至1256年

答案 2 :(得分:0)

请尝试以下代码。

string.Format("{0:####/##}",123456)

我测试了代码并且正在运行。

有关字符串格式的参考,请访问:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings