分享
三行代码  ›  专栏  ›  技术社区  ›  Lia

删除C中的前导零,但不删除所有零#

c#
  •  0
  • Lia  · 技术社区  · 1 周前

    我有字符串值 000001 001

    之前数量为零 001 可以是不同的,价值本身也可以是不同的 011 111

         Value   Expected Value
           000   000
          0001   001
         00011   011
        000111   111
       0001111   Not a case
    

    value.TrimStart('0') 但如何保持最后三个字符范围内的零呢?

    有没有办法修剪到只剩下指定的字符?

    3 回复  |  直到 1 周前
        1
  •  9
  •   D Stanley    1 周前

    先修剪,再修剪 PadLeft

    value.TrimStart('0').PadLeft(3,'0')
    
        2
  •  3
  •   Ravi Tiwari    1 周前

    因为您需要最后三个字符,所以提取就可以了。

    string value = "12345"; // "0012";
    Console.WriteLine(value.Substring(value.Length - 3));
    
        3
  •  2
  •   Caius Jard    1 周前

    在现代C语言中,我们有一种很好的方法,可以用索引和范围来表示字符串的各个部分

    value[^3..];
    

    value.PadLeft(3,'0')[^3..];
    
    ("00"+value)[^3..];