How to remove leading zeros using C#

前端 未结 8 1445
忘掉有多难
忘掉有多难 2020-12-01 04:16

How to remove leading zeros in strings using C#?

For example in the following numbers, I would like to remove all the leading zeros.

0001234
00000012         


        
相关标签:
8条回答
  • 2020-12-01 04:26

    This Regex let you avoid wrong result with digits which consits only from zeroes "0000" and work on digits of any length:

    using System.Text.RegularExpressions;
    
    /*
    00123 => 123
    00000 => 0
    00000a => 0a
    00001a => 1a
    00001a => 1a
    0000132423423424565443546546356546454654633333a => 132423423424565443546546356546454654633333a
    */
    
    Regex removeLeadingZeroesReg = new Regex(@"^0+(?=\d)");
    var strs = new string[]
    {
        "00123",
        "00000",
        "00000a",
        "00001a",
        "00001a",
        "0000132423423424565443546546356546454654633333a",
    };
    foreach (string str in strs)
    {
        Debug.Print(string.Format("{0} => {1}", str, removeLeadingZeroesReg.Replace(str, "")));
    }
    

    And this regex will remove leading zeroes anywhere inside string:

    new Regex(@"(?<!\d)0+(?=\d)");
    //  "0000123432 d=0 p=002 3?0574 m=600"
    //     => "123432 d=0 p=2 3?574 m=600"
    
    0 讨论(0)
  • 2020-12-01 04:26

    Using the following will return a single 0 when input is all 0.

    string s = "0000000"
    s = int.Parse(s).ToString();
    
    0 讨论(0)
  • 2020-12-01 04:28

    Code to avoid returning an empty string ( when input is like "00000").

    string myStr = "00012345";
    myStr = myStr.TrimStart('0');
    myStr = myStr.Length > 0 ? myStr : "0";
    
    0 讨论(0)
  • 2020-12-01 04:31

    TryParse works if your number is less than Int32.MaxValue. This also gives you the opportunity to handle badly formatted strings. Works the same for Int64.MaxValue and Int64.TryParse.

    int number;
    if(Int32.TryParse(nvarchar, out number))
    {
       // etc...
       number.ToString();
    }
    0 讨论(0)
  • 2020-12-01 04:32

    This is the code you need:

    string strInput = "0001234";
    strInput = strInput.TrimStart('0');
    
    0 讨论(0)
  • 2020-12-01 04:37

    return numberString.TrimStart('0');

    0 讨论(0)
提交回复
热议问题