最快/最好的格式化字符串的方法

本文关键字:格式化 方法 字符串 最快 | 更新日期: 2023-09-27 18:08:06

我知道这似乎是一个初级问题,应该很容易通过谷歌找到解决方案,但我被卡住了。

我正在使用c#。

我有这个字符串:

20150824100112345(例如)

我想把它转换成一个新的字符串,像这样:

2015 24 ' ' 08年' ' 00 ' ' 345 '

是否有一个'1-liner'的代码,我可以用它来完成这个请?

注不首先将其转换为日期时间格式

最快/最好的格式化字符串的方法

正如评论中所说,您应该真正将其解析为DateTime,然后将其转换为字符串。

但是要像你要求的那样解析字符串,你应该使用Regex,它可以将字符串分成几组。

如果你不想首先解析到DateTime(即,如果你不关心有效性),如果输入总是格式化为你的例子(零填充,所以08而不是8),你可以做一些简单的Substring()调用:

string input = "20150824100112345";
string output = input.Substring(0, 4) + @"'" // 2015
              + input.Substring(4, 2) + @"'" // 08
              + input.Substring(6, 2) + @"'" // 24
              + input.Substring(8, 2) + @"'" // 10
              + input.Substring(10, 2) + @"'" // 01
              + input.Substring(12, 2) + @"'" // 12
              + input.Substring(14, 3); // 345

或者在正则表达式中:

string input = "20150824100112345";
string output = Regex.Replace(input, 
                  "([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{3})", 
                 @"$1'$2'$3'$4'$5'$6'$7");