如何检查字符串是否为正整数
本文关键字:是否 整数 字符串 何检查 检查 | 更新日期: 2023-09-27 18:31:05
我的意思是:
1231 YES
121.1241 NO
121,1241 NO
-121 NO
124a NO
如何在 C# 中更快地做到这一点?
int x;
if (int.TryParse(str, out x) && x > 0)
您可以检查它是否只包含数字:
if (theString.All(Char.IsDigit))
实际解析它的另一种方法是检查字符串是否为非空且仅包含数字,如果要允许,可以选择使用前导+
符号。
请注意,这不会执行任何范围检查 - 因此9999999999999999999999999999999999将是有效的,即使它不适合int
或long
。
你可以为此使用正则表达式,或者可能使用 LINQ:
var nonNegative = text.Length > 0 && text.All(c => c >= '0' && c <= '9');
(这类似于Guffa的Char.IsDigit
方法,但仅限于ASCII数字。Unicode 中有许多非 ASCII 数字。
请注意,这会将其限制为非负值 - 而不仅仅是正值。您想如何处理"0"和"0000"?