最快/最好的格式化字符串的方法
本文关键字:格式化 方法 字符串 最快 | 更新日期: 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");