Как проверить, является ли число целым числом в .NET? - PullRequest
1 голос
/ 11 октября 2008

Скажем, у меня есть строка, которая содержит число. Я хочу проверить, является ли это число целым числом.

Примеры

IsInteger("sss") => false 

IsInteger("123") => true

IsInterger("123.45") =>false

Ответы [ 3 ]

17 голосов
/ 11 октября 2008

Вы можете использовать int. TryParse . Он вернет bool, если сможет проанализировать строку и установить для параметра out значение

 int val;
if(int.TryParse(inputString, out val))
{
    //dosomething
}
4 голосов
/ 11 октября 2008

Вы можете использовать две немедленные опции.

Вариант 1 - предпочтительный - использовать Int32.TryParse .

int res;
Console.WriteLine(int.TryParse("sss", out res));
Console.WriteLine(int.TryParse("123", out res));
Console.WriteLine(int.TryParse("123.45", out res));
Console.WriteLine(int.TryParse("123a", out res));

Это выводит:

False
True
False
False

Вариант 2 - использовать регулярные выражения

Regex pattern = new Regex("^-?[0-9]+$", RegexOptions.Singleline);
Console.WriteLine(pattern.Match("sss").Success);
Console.WriteLine(pattern.Match("123").Success);
Console.WriteLine(pattern.Match("123.45").Success);
Console.WriteLine(pattern.Match("123a").Success);

Это выводит:

False
True
False
False
2 голосов
/ 11 октября 2008

Вы можете использовать System.Int32.TryParse и делать что-то подобное ...

string str = "10";
int number = 0;
if (int.TryParse(str, out number))
{
    // True
}
else
{
    // False
}
...