如何使用C#删除字符串中的前导零?
例如,在以下数字中,我想删除所有前导零.
0001234
0000001234
00001234
Run Code Online (Sandbox Code Playgroud)
小智 288
这是您需要的代码:
string strInput = "0001234";
strInput = strInput.TrimStart('0');
Run Code Online (Sandbox Code Playgroud)
Mas*_*oke 143
这实际上取决于NVARCHAR的长度,因为上面的一些(特别是那些通过IntXX转换的)方法不适用于:
String s = "005780327584329067506780657065786378061754654532164953264952469215462934562914562194562149516249516294563219437859043758430587066748932647329814687194673219673294677438907385032758065763278963247982360675680570678407806473296472036454612945621946";
Run Code Online (Sandbox Code Playgroud)
像这样的东西会
String s ="0000058757843950000120465875468465874567456745674000004000".TrimStart(new Char[] { '0' } );
// s = "58757843950000120465875468465874567456745674000004000"
Run Code Online (Sandbox Code Playgroud)
msy*_*ilu 27
避免返回空字符串的代码(当输入类似于"00000"时).
string myStr = "00012345";
myStr = myStr.TrimStart('0');
myStr = myStr.Length > 0 ? myStr : "0";
Run Code Online (Sandbox Code Playgroud)
小智 7
当输入全为 0 时,使用以下命令将返回单个 0。
string s = "0000000"
s = int.Parse(s).ToString();
Run Code Online (Sandbox Code Playgroud)
如果您的数字小于Int32.MaxValue,则TryParse有效.这也使您有机会处理格式错误的字符串.对Int64.MaxValue和Int64.TryParse也一样.
int number;
if(Int32.TryParse(nvarchar, out number))
{
// etc...
number.ToString();
}Run Code Online (Sandbox Code Playgroud)