如何删除前导零

如何使用C#删除nvarchar数据types中的前导零?

例如在下面的数字中,我想删除前导零。

0001234 0000001234 00001234 

这实际上取决于NVARCHAR的时间长短,因为上面的几个(特别是通过IntXX转换的)方法不适用于:

 String s = "005780327584329067506780657065786378061754654532164953264952469215462934562914562194562149516249516294563219437859043758430587066748932647329814687194673219673294677438907385032758065763278963247982360675680570678407806473296472036454612945621946"; 

像这样的东西会

 String s ="0000058757843950000120465875468465874567456745674000004000".TrimStart(new Char[] { '0' } ); // s = "58757843950000120465875468465874567456745674000004000" 

这是你需要的代码:

 string strInput = "0001234"; strInput.TrimStart('0'); 

return numberString.TrimStart('0');

代码避免返回一个空string(当input像“00000”)。

 string myStr = "00012345"; myStr = myStr.TrimStart('0'); myStr = myStr.Length > 0 ? myStr : "0"; 

如果您的号码小于Int32.MaxValue,则TryParse将起作用。 这也让你有机会处理格式不正确的string。 对Int64.MaxValue和Int64.TryParse工作相同。

 int number; if(Int32.TryParse(nvarchar, out number)) { // etc... number.ToString(); } 

当input全为0时,使用以下将返回单个0。

string s = "0000000" s = int.Parse(s).ToString();