从字符串中的数字中删除前导零

时间:2014-03-09 04:45:53

标签: c# string numbers int

这是我的字符串:

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

我怎样才能做到这一点?

4 个答案:

答案 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进行组合他们又变成了长串。