检查字符串的第一个元素是否为正整数

本文关键字:整数 是否 元素 字符串 第一个 检查 | 更新日期: 2023-09-27 17:58:23

我需要检查字符串的第一个元素是否是C#中的正整数。有聪明的方法吗?Fx

string str = "2001";
if (str.First() == isANumber) {
...                                
}

检查字符串的第一个元素是否为正整数

您可以尝试以下操作:

string s = "1sdfa";
bool isDigit = char.IsDigit(s[0]);

此外,如果您想对字符串进行额外的检查,您可以这样做:

bool isDigit = !string.IsNullOrEmpty(s) && char.IsDigit(s[0]);

我相信如果没有符号,那么它是正的?因此,只需检查第一个sybmol是否不是"-"

编辑:正如马克在下面的评论中所指出的,这可能取决于所使用的文化。

可以使用Char。IsDigit

Char.IsDigit(str[0])

您应该使用Char.IsDigit()方法。

指示指定的Unicode字符是否分类为十进制数字。

喜欢;

string str = "2001";
if (Char.IsDigit(str[0]))
{
    Console.WriteLine ("Positive digit");
}
else
{
    Console.WriteLine ("Not digit");
}

这是一个DEMO

您可以使用char。IsDigit方法检查第一个字符是否为数字。

if(char.IsDigit(str[0]))
    Console.WriteLine("Starting character is positive digit");
else
    Console.WriteLine("Starting character is not a digit");

如果您可以在访问其索引0 之前检查字符串的长度,效果会更好

if(Char.IsDigit(str.First()))
{
}
string str = "2001";
if (char.IsDigit(str.First())
{
   if(Convert.toInt32(str.First().ToString()) >= 0)
   {
     // positive integer
   }
}

你好,你可以使用这个。。。

string something = "some string";
bool isDigit = char.IsDigit(something[0]);