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

时间:2013-02-08 09:59:35

标签: c# string parsing

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

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

8 个答案:

答案 0 :(得分:9)

你可以试试这个:

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

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

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

答案 1 :(得分:3)

我相信如果没有迹象那么它是积极的吗?因此,只需检查第一个sybmol是否不是"-"

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

答案 2 :(得分:2)

可以使用Char.IsDigit

Char.IsDigit(str[0])

答案 3 :(得分:2)

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

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

如果您可以在访问其索引0

之前检查字符串的长度,那就更好了

答案 4 :(得分:2)

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

  

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

像;

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

这是DEMO

答案 5 :(得分:0)

if(Char.IsDigit(str.First()))
{
}

答案 6 :(得分:0)

string str = "2001";

if (char.IsDigit(str.First())
{
   if(Convert.toInt32(str.First().ToString()) >= 0)
   {
     // positive integer
   }
}

答案 7 :(得分:0)

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

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