【问题标题】:Remove leading zeros from numbers in string [duplicate]从字符串中的数字中删除前导零[重复]
【发布时间】:2014-04-12 06:39:08
【问题描述】:

这是我的字符串:

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

我怎样才能做到这一点?

【问题讨论】:

  • string.TrimStart('0') 可以帮助

标签: c# string numbers int


【解决方案1】:

您可以使用正则表达式。我认为它比使用一个函数调用解析每个子字符串更有效且更短:

string result = Regex.Replace(sourse, "(^0+|(:)0*([1-9])|(:0)0*)", "$2$3$4");

【讨论】:

    【解决方案2】:

    你可以Split字符串,然后用TrimStart修剪前导零:

    string.Join(":", source.Split(":").Select(x => x.TrimStart('0')));
    

    我认为这会比解析每个子字符串更有效率。

    【讨论】:

    • 这将删除单零数字。
    【解决方案3】:

    您应该拆分内容,解析为int,对每个内容调用ToString,然后再次加入string:

    var result = String.Join(":", source.Split(':').Select(x => int.Parse(x).ToString()));
    

    【讨论】:

      【解决方案4】:

      你可以先调用Split将长字符串变成可枚举的字符串,然后你可以使用int.Parse将它们解析成数字,然后调用Join将它们组合成一个长字符串.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-09
        • 1970-01-01
        • 2011-10-04
        • 2014-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-20
        相关资源
        最近更新 更多