Как найти и заменить символы в строке? - PullRequest
0 голосов
/ 11 ноября 2010

Я знаю, что это должно быть очень простым делом, но мне никогда не приходилось обрабатывать строки раньше (в Objective-C), и, очевидно, на Cocoa-Touch нет RegEx.

Ну, ситуация такова:

  • У меня есть текстовое поле для получения значения (например, деньги, например 32.10).

Проблема:

  • Если пользователь введет такой символ, как @, /, # и т. Д., Мое приложение будет аварийно завершено.

Вопрос: Как мне обработать эту строку, чтобы удалить символы, если они есть?

Ответы [ 3 ]

4 голосов
/ 11 ноября 2010

Вы можете попробовать это:

NSString *s = @"12.827#@584";
NSCharacterSet *removeCharSet = [NSCharacterSet characterSetWithCharactersInString:@"/:@#"];
s = [[s componentsSeparatedByCharactersInSet: removeCharSet] componentsJoinedByString: @""];
NSLog(@"%@", s);
1 голос
/ 11 ноября 2010

Вы получаете регулярное выражение в Cocoa Touch.

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

http://volonbolon.net/post/861427732/text-handling-in-ios-4

0 голосов
/ 11 ноября 2010

Я понимаю, что вы пытаетесь выяснить число, включенное в свойство text UITextFields, и назначить его переменной с плавающей точкой.

Попробуйте использовать для этого NSScanner:

NSScanner* textScanner = [NSScanner localizedScannerWithString:textfield.text];
float* floatValue;
[textScanner scanFloat:&floatValue];

floatValue теперь содержит проанализированное значение с плавающей точкой вашего текстового поля.

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