Как я могу проверить, является ли строка (очень большим) числом? - PullRequest
4 голосов
/ 27 октября 2010

Мне нужно сделать проверку номера для указанной строки.Проблема в том, что строка может быть большим числом , большим, чем может представлять любой числовой тип в C #, поэтому я не могу использовать функции TryParse, потому что они будут давать только информацию о том, могут ли они преобразоваться в теТипы.

Он должен учитывать - / +, разделитель и текущие настройки культуры.

Я нашел некоторые решения с использованием регулярных выражений, но все они упускают некоторые детали.И я не очень хорош в регулярных выражениях

Ответы [ 3 ]

9 голосов
/ 27 октября 2010

Вы можете использовать BigInteger, если вы используете C # 4.0 и числа целые.

Это Represents an arbitrarily large signed integer.

Используйте метод TryParse, чтобы избежать возможного исключения из Parse (если только вы не уверены , что переданная строка всегда будет действительное целое число).

3 голосов
/ 27 октября 2010

Если вы используете .NET 4.0, вы можете использовать BigInteger . Он содержит TryParse , который принимает IFormatProver, который будет делать то, что вам нужно. BigInteger имеет неограниченный размер, поэтому невозможно, чтобы нужные вам числа были больше, чем то, что BigInteger может обработать.

0 голосов
/ 27 октября 2010

Взгляните на http://www.regexlib.com/Search.aspx?k=numeric&c=-1&m=5&ps=20. http://regexlib.com/, который содержит много примеров регулярных выражений, и должен быть один, соответствующий вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...