这是我的字符串:
03930:03194:03888:04251:04218:03676:04048:03876:00000:00000:00000:00000:00000:00000:00000:00000
我需要删除所有前导零并将其转换为:
3930:3194:3888:4251:4218:3676:4048:3876:0:0:0:0:0:0:0:0
我怎样才能做到这一点?
答案 0 :(得分:4)
您应该拆分内容,解析为int
,在每个内容上调用ToString
并再次加入string
:
var result = String.Join(":", source.Split(':').Select(x => int.Parse(x).ToString()));
答案 1 :(得分:2)
您可以使用正则表达式。我认为它比通过一个函数调用解析每个子字符串和更短的效率更高:
string result = Regex.Replace(sourse, "(^0+|(:)0*([1-9])|(:0)0*)", "$2$3$4");
答案 2 :(得分:1)
您可以Split
字符串,然后使用TrimStart
修剪前导零:
string.Join(":", source.Split(":").Select(x => x.TrimStart('0')));
我认为这比解析每个子字符串更有效。
答案 3 :(得分:0)
您可以先调用Split
以将长字符串转换为可枚举的字符串,然后使用int.Parse
将其解析为数字,然后调用Join
进行组合他们又变成了长串。