如何检查字符串是否为正整数?
int x;
if (int.TryParse(str, out x) && x > 0)
为什么不'uint.TryParse(str,out x)'而不是?我可以想象,它也更有效,因为它不需要检查'-' – Firo 2012-04-16 06:57:08
我认为它需要更多的解释(而不是编写代码)。 – 2017-02-23 06:00:23
另一种实际解析这是检查是否要允许该字符串非空和只有包含数字,任选一家领先的+
迹象。
请注意,这不会执行任何范围检查 - 因此9999999999999999999999999999999999将是有效的,即使它不适合int
或long
。
你可以使用一个正则表达式,或者可能LINQ:
var nonNegative = text.Length > 0 && text.All(c => c >= '0' && c <= '9');
(这类似于Guffa的Char.IsDigit
做法,但限制本身ASCII数字有Unicode中许多非ASCII数字)。
注意,这将其限制在非负值 - 不只是积极值。你会如何处理“0”和“0000”?
您可以检查它是否只包含数字:在什么范围内
if (theString.All(Char.IsDigit))
正整数? (对于大于“int.MaxValue”或“int.LongValue”的值,它应该做什么?)前导空格是否有效?领先+符号怎么样? – 2012-04-15 13:05:41
哦,那么0呢?你真的意味着*积极*还是非消极? – 2012-04-15 13:08:00
'1.0'呢? – 2012-04-15 14:25:19