【发布时间】:2017-07-28 19:56:09
【问题描述】:
编辑:
由于您的回答,我认为我问错了问题。
并不是我的解决方案不起作用或不是很干净。如果有一种通用的方法,我对如何格式化字符串很感兴趣。就像您可以使用 int 或其他数据类型一样。
所以我找不到。但我希望有一个。
这就是我想问的问题:
C# 是否提供了一种格式化字符串的方法,就像它对 int 或其他数据类型所做的那样?
我正在寻找这样的东西:
myString.Format(myFormat);
或:
myFormattedString = String.Format(myString, myFormat);
如果答案是否定的,那也没关系。我只是想知道它。 (也许还有其他人)
原问题:
更改字符串格式的最佳方法是什么?
所以我有一个看起来像这样的字符串:
"123456789012345678"
现在我想要那个:
"12.34.567890.12345678"
我正在使用这个,但我觉得它不是很干净:
private string FormatString(string myString)
{
return myString.Insert(2, ".").Insert(5, ".").Insert(12, ".");
}
我尝试过的事情:
// Too long.
private string FormatString(string myString)
{
return myString.Substring(0, 2)
+ "."
+ myString.Substring(2, 2)
+ "."
+ myString.Substring(4, 6)
+ "."
+ myString.Substring(10, 8);
}
// Convertion from string -> long -> string.
private string FormatString(string myString)
{
return String.Format("{0:##'.'##'.'######'.'########}", long.Parse(myString));
}
我正在寻找类似的东西:
private string FormatString(string myString)
{
return String.Format("{0:##'.'##'.'######'.'########}", myString);
}
【问题讨论】:
-
“我正在使用它,但我觉得它不是很干净:”我认为它非常清晰,因为它很容易理解。跨度>
-
只是在输入与 HimBromBeere 相同的内容。这对我来说是非常明确的。我会保留它!
-
保留你所拥有的。真的很干净。
-
我会颠倒
Insert的顺序:myString.Insert(10, ".").Insert(4, ".").Insert(2, ".")。通过这种方式,更清楚您插入"."的初始位置是什么...以您编写代码的方式,第二个Insert()必须计算已经插入的第一个"."
标签: c# string-formatting