C #: есть ли способ найти строку для числа без использования регулярных выражений? - PullRequest
5 голосов
/ 30 сентября 2010

Эй, ребята, мне просто интересно, есть ли способ проверить, содержит ли строка какие-либо числовые цифры без использования регулярных выражений.Я думал просто разбить его на массив и запустить поиск по нему, но что-то подсказывает мне, что есть более простой способ

//pseudocode
string aString = "The number 4"

If (aString contains a number) Then enter validation loop
Else return to main

//output
"The string contains a number. Are you sure you want to continue?"

Ответы [ 3 ]

9 голосов
/ 30 сентября 2010
var containsdigit = somestring.Any(char.IsDigit);
3 голосов
/ 30 сентября 2010

Вы можете использовать String.IndexOfAny как:

bool isNumeric = mystring.IndexOfAny("0123456789".ToCharArray()) > -1;
2 голосов
/ 30 сентября 2010

Вы можете создать метод расширения для строки и использовать комбинацию LINQ и функции Char.IsNumber например,

public static class StringExt
{
    public static bool ContainsNumber(this string str)
    {
        return str.Any(c => Char.IsNumber(c)); 
    }
}

Тогда ваша логика будет выглядеть следующим образом:

//pseudocodestring 
string str = "The number 4";
If (aString.ContainsNumber())
    enter validation    
...