Подтвердить что ты не робот

Как проверить, является ли моя строка только числовой

Как я могу проверить, содержит ли моя строка только числа?

Я не помню. Что-то вроде isnumeric?

4b9b3361

Ответ 1

Просто проверьте каждый символ.

bool IsAllDigits(string s)
{
    foreach (char c in s)
    {
        if (!char.IsDigit(c))
            return false;
    }
    return true;
}

Или используйте LINQ.

bool IsAllDigits(string s)
{
    return s.All(char.IsDigit);
}

Если вы хотите узнать, представляет ли значение, введенное в вашу программу, действительное целочисленное значение (в диапазоне int), вы можете использовать TryParse(). Обратите внимание, что этот подход отличается от проверки, содержит ли строка только цифры.

bool IsAllDigits(string s)
{
    return int.TryParse(s, out int i);
}

Ответ 3

Метод int.TryParse() возвращает false для не числовых строк

Ответ 4

Ваш вопрос непонятен. Разрешено ли . в строке? Разрешено ли ¼?

string source = GetTheString();

//only 0-9 allowed in the string, which almost equals to int.TryParse
bool allDigits = source.All(char.IsDigit); 
bool alternative = int.TryParse(source,out result);

//allow other "numbers" like ¼
bool allNumbers = source.All(char.IsNumber);

Ответ 5

Если вы хотите использовать Regex, вам нужно будет использовать что-то вроде этого:

string regExPattern = @"^[0-9]+$";
System.Text.RegularExpressions.Regex pattern = new System.Text.RegularExpressions.Regex(regExPattern);
return pattern.IsMatch(yourString);

Ответ 6

public bool IsNumeric(string str)
{
    return str.All(c => "0123456789".Contains(c);
}

Ответ 7

Вы можете сделать так:

public bool IsNumeric(string val)
{
    if(int.TryParse(val)) return true;
    else if(double.TryParse(val)) return true;
    else if(float.TryParse(val)) return true;
    else return false;
}

Ответ 8

Вы можете написать такую ​​функцию:

public bool isStringIsNumeric(string strValue)
{
    int iValue = 0;
    bool canConvert = int.TryParse(strValue, out iValue);
    if (int.TryParse(strValue, out iValue))
       return true;
    else
       return false;
}

Ответ 9

У меня есть решение... даже если я "немного" опаздываю. Это происходит следующим образом:

try
{
 double test = Convert.ToDouble(string);
}
catch(Exception e)
{
MessageBox.show("String contains non numeric characters!");
}

Я знаю, что попытка try-catch должна использоваться только тогда, когда это необходимо, потому что это немного снижает эффективность, но если эффективность не является проблемой, вы можете пойти с этим. Ура!