Проверка NSString - PullRequest
       2

Проверка NSString

0 голосов
/ 15 февраля 2012

Мне нужно проверить некоторую NSString, которую пользователь вводит в некотором UITextField.

Мне нужно 2 вида проверки.

1-й, чтобы определить, является ли объект NSString допустимым десятичным числом.

Например, @ "100", @ "10.1", @ "0.11" все допустимы, а @ "100.11.1" - нет.

2-й, чтобы судить,объект NSString не является строкой, состоящей только из пробелов.

Например, @ "abc", @ "ab ---- c", все допустимы, но @ "-----", @"", не так.

здесь "-" означает пробел "".

Как я могу проверить эти 2 вида строки NSString?

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Для первой части попробуйте это

NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setAllowsFloats:YES];
[formatter setDecimalSeparator:@"."];

NSNumber *number = [formatter numberFromString: inputString];

if(number == nil)
{
  //invalid input string
}

Для второй части попробуйте это:

NSString *str = [inputString stringByReplacingOccurrencesOfString:@" " withString:@""];
if([str length] == 0)
{
    //invalid input string
}
0 голосов
/ 15 февраля 2012

Для первой проверки вы можете считать десятичные точки.Ноль действителен.Все, что больше единицы, недопустимо.И один всегда действителен (при условии, что «.123» действителен).

Для второй проверки вы можете сравнить пустую строку @"" с исходной строкой со всеми удаленными пробелами.Если они равны, то ваша исходная строка неверна.

Поиск вокруг SO.Например, Количество вхождений символа в NSString может быть полезным.

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