rusqhyazeubebgcahrcsdanlenetfifrglkadeelhuisgaitkkkylvltmknoplptrosrskslessvtrukuz

Определяем, является ли строка числом

Больше
3 мес. 2 нед. назад #219 от О.Коровяков
О.Коровяков создал тему: Определяем, является ли строка числом
Если у меня есть эти строки:

"abc"= false
"123"= true
"ab2"= false

Есть ли такая команда, как IsNumeric() или что-то еще, которая может определить, является ли строка допустимым числом?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 2 нед. назад #220 от О.Коровяков
О.Коровяков ответил в теме Определяем, является ли строка числом
от С# 7:
var isNumeric = int.TryParse("123", out int n);

Варианты могут быть заменены их соответствующими типами!

Хотя я бы использовал double.TryParse, так как мы хотим знать, представляют ли они число вообще

Функция вернет true, если я передам строку как «-123» или «+123». Я понимаю, что целое число имеет положительные и отрицательные значения. Но если эта строка исходит из введенного пользователем текстового поля, она должна вернуть false.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 2 нед. назад #221 от О.Коровяков
О.Коровяков ответил в теме Определяем, является ли строка числом
Вы также можете использовать:
stringTest.All(char.IsDigit);

Он вернет true для всех числовых значений (не с float) и false если входная строка является какой-либо буквенно-цифровой.

Обратите внимание: stringTest не должен быть пустой строкой, так как это пройдет тест на число.

Это очень круто. Однако следует помнить одну вещь: пустая строка пройдет этот тест как числовой.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 2 нед. назад #222 от О.Коровяков
О.Коровяков ответил в теме Определяем, является ли строка числом
Это, вероятно, лучший вариант в С#.

Если вы хотите узнать, содержит ли строка целое число (целое число):
string someString;
// ...
int myInt;
bool isNumerical = int.TryParse(someString, out myInt);

Метод TryParse попытается преобразовать строку в число (целое число), и если это удастся, она вернет true и поместит соответствующий номер в myInt. Если он не может, он возвращает false.

Решения, использующие альтернативу int.Parse(someString), показанные в других ответах, работают, но это намного медленнее, потому что исключение бросания очень дорого. TryParse(...) был добавлен на язык С# в версии 2, и до этого у вас не было выбора. Теперь вы делаете: поэтому вам следует избегать альтернативы Parse().

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 2 нед. назад #223 от О.Коровяков
О.Коровяков ответил в теме Определяем, является ли строка числом
Вы всегда можете использовать встроенные методы TryParse для многих типов данных, чтобы увидеть, пройдет ли данная строка.

Пример.
decimal myDec;
var Result = decimal.TryParse("123", out myDec);
Результат тогда = True
decimal myDec;
var Result = decimal.TryParse("abc", out myDec);
Результат тогда = False

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
3 мес. 2 нед. назад #224 от О.Коровяков
О.Коровяков ответил в теме Определяем, является ли строка числом
В случае, если вы не хотите использовать int.Parse или double.Parse, вы можете перевернуть свой код примерно так:
public static class Extensions
{
    public static bool IsNumeric(this string s)
    {
        foreach (char c in s)
        {
            if (!char.IsDigit(c) && c != '.')
            {
                return false;
            }
        }
 
        return true;
    }
}

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подпишитесь на наши новости...

Если вам интересны материалы опубликованных на Нашем сайте, Вы можете подписаться на рассылку информационных бюллетеней о новых публикациях ... Просто введите адрес электронной почты на какую Вы хотите получать Новости и нажмите кнопку "Подписаться"

Контакт Инфо

Ok-Wood.
08304 ул.Салютная,c.Гнедын,
Киевская обл, Украина
  • Тел: +39 067 492 41 24
    Tel: +38 095 095 88 60
  • Email: info@ok-wood.com.ua
  • Web: ok-wood.com.ua

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