VirQ. Проверить, содержит ли строка только число в C#
Язык C# входит в ТОП-5
самых популярных языков
программирования
Главная / Строковые переменные /
Проверить, содержит ли строка только число
Статей на сайте: 61

Проверить, содержит ли строка только число


Строка может содержать набор букв, цифр и знаков. Однако, если в строке введены только цифры, то это может быть и числом. Есть функция int.TryParse и double.TryParse, которая и занимается проверкой и конвертацией одновременно.
[code] int n = 0; int.TryParse(s, out n); //Конвертировать целое число. Если не удалось, будет 0 double m = 0; double.TryParse(s, out m); //Конвертировать дробное число. Если не удалось, будет 0 [/code]
У этих типов так же есть методы Parse. Однако при неверной записи входящей строки будет вызвана ошибка и программа оборвётся.
[code] string s1 = "123%#!@*"; int n = int.Parse(s1); //Тут будет вызвана ошибка [/code]
Чтобы ошибки не было, использовать надо TryParse. Этот метод не только переводит число из строки в число, но и выдаёт результат, успешен ли был перевод.
[code] Console.WriteLine("Введите число"); string s1 = Console.ReadLine(); double n1 = 0; bool r = double.TryParse(s1, out n1); if (r) Console.WriteLine("Это число"); else Console.WriteLine("Это не число"); Console.ReadKey(); [/code]
Console
×
Введите число
16
Это число

Console
×
Введите число
абракадабра
Это не число

В данном случае в s1 сперва человек вводит какое значение во время выполнения программы
n1 по умолчанию = 0 (это наш числовой результат)
r - это булевская (bool) переменная, результат которой вернет double.TryParse при попытке конвертировать строку s1 в число n1
Не путайте
[code] string s = "10"; //Это строка int s = 10; //Это число [/code]
Для компьютера это понятия разные
В 1 строке - это строка из 2 символов "1" и "0"
Во 2 строке - это число 10
int.TryParse конвертирует строку string в целое число int
[code] Console.WriteLine("Введите число"); string s1 = Console.ReadLine(); int n1 = 0; //Заменили double на int bool r = int.TryParse(s1, out n1); //Заменили double.TryParse на int.TryParse if (r) Console.WriteLine("Это число"); else Console.WriteLine("Это не число"); Console.ReadKey(); [/code]
Методы Parse и TryParse содержатся не только у типов int и double. Они есть во всех целочисленных и дробных типах.

Дополнительная информация о том, как вывести результат в консоли или WinForm