1

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

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

8 回答 8

11

你可以试试这个:

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

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

bool isDigit = !string.IsNullOrEmpty(s) && char.IsDigit(s[0]);
于 2013-02-08T10:01:23.870 回答
3

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

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

于 2013-02-08T10:01:55.977 回答
2

可以使用Char.IsDigit

Char.IsDigit(str[0])
于 2013-02-08T10:01:21.867 回答
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

于 2013-02-08T10:01:48.377 回答
2

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

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

像;

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

这是一个DEMO.

于 2013-02-08T10:02:13.353 回答
0
if(Char.IsDigit(str.First()))
{
}
于 2013-02-08T10:03:17.250 回答
0
string str = "2001";

if (char.IsDigit(str.First())
{
   if(Convert.toInt32(str.First().ToString()) >= 0)
   {
     // positive integer
   }
}
于 2013-02-08T10:04:57.067 回答
0

你好你可以用这个...

string something = "some string";
bool isDigit = char.IsDigit(something[0]);
于 2013-02-08T10:05:59.240 回答