2011-08-03 59 views

回答

14

最简单的正确的方法是:

int.Parse(s).ToString(); 

的装饰方法都失败了“0000”的投入,他们会返回一个空字符串,而不是正确的“0”。

+0

+1你是对的。我把它作为字符串总是像0012,而不是0000.你不会从0000删除前导零。除非你想它是0我猜。 – 2011-08-03 16:10:26

+1

这不适用于各种情况 - 字符串包含字母字符,是小数的字符串表示,或者是大于“Int32.MaxValue”的整数。 –

+0

@KirkBroadhurst:“前导零”是一个通常用于数字串的术语,并不包括零。此外,问题中的示例数据只有数字。 –

19

TrimStart看看:

​​

从MSDN:

的TrimStart方法从当前字符串中移除所有领先 字符是在trimChars参数。遇到不在trimChars中的字符时,修剪操作 停止。

+0

+1打我给它。 –

+1

+1比假设值为整数的其他答案好得多;值可以是“0012ABC”或“00999999999999999999”,两者都会失败,并带有“int.Parse”。 –

+0

考虑这个限制(不是关于主题,我知道) 只有在没有指定任何修饰字符作为参数的情况下,'System.String TrimStart(Char [])'仅在LINQ to Entities中受支持 –

2

如果总是使用int,你可以分析它:

abc = int.Parse(abc).ToString() 
1

var str = int.Parse(abc).ToString();应该做的,我认为这项工作。将数字转换为int,然后将其转换回字符串。

+0

我的投票在这里,因为它也适用于负数。在这种情况下使用TrimStart方法的解决方案将失败。 –

+0

没有负数..字符串 – nologo

+0

@nologo他意味着TrimStart方法不适用于像“-00123”这样的字符串 –

1
var abc = "0023"; 
var zeroless = abc.TrimStart('0'); 

输出: “23”

+0

不是OP的主题,但对于那些因搜索而陷入困境的人,请考虑以下'TrimStart'限制: 当LINQ to Entities没有指定任何修饰字符作为参数时,System.String TrimStart(Char []) ' –

1
 string some_string = "000045"; 
     string ur_desire = int.Parse(some_string).ToString(); 
     Console.WriteLine(ur_desire); 

触变九好答案我想是因为它也有负数工程..