Разделить строку Objective-C - PullRequest
1 голос
/ 13 апреля 2011

У меня есть такая строка

NSString *string = @"feng2zhong3"

, и я хочу разделить эту строку на feng2 и zhong3, как это сделать?

Ответы [ 3 ]

5 голосов
/ 13 апреля 2011

Попробуйте:

NSString* feng = [string substringToIndex:4]
NSString* zhong = [string substringFromIndex:5]

РЕДАКТИРОВАТЬ:

Теперь, когда вы ясно дали понять, на что похожи ваши входные данные, один из вариантов - использовать регулярные выражения для таких совпадений:1006 *

NSString* string = @"feng4shui5";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\D+\d+" options:NSRegularExpressionCaseInsensitive error:&error];
NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult *match in matches) {
     NSRange matchRange = [match range];
     NSRange firstHalfRange = [match rangeAtIndex:1];
     NSRange secondHalfRange = [match rangeAtIndex:2];
     NSLog([userinput substringWithRange:matchRange]);
}

где строка - строка, содержащая ваш ввод.

0 голосов
/ 13 апреля 2011

Вы можете использовать +[NSString rangeOfCharacterFromSet:options:range:] с +[NSCharacterSet decimalDigitCharacterSet] и получать подстроки через результирующие диапазоны.

Или вы можете использовать NSScanner, используя:

NSCharacterSet *digitSet = [NSCharacterSet decimalDigitCharacterSet];
NSScanner *scanner = [NSScanner scannerWithString:inputString];

..и последовательные вызовы:

success = [scanner scanUpToCharactersFromSet:digitSet intoString:&namePart];
// ...
success = [scanner scanCharactersFromSet:digitSet intoString:&digitPart];
// ...
0 голосов
/ 13 апреля 2011

используйте методы substringFromIndex и substringToIndex

приведенный ниже код заполнен полностью для вас. Он отлично работает для ваших требований

    NSMutableString *s = @"fig2sine3";
    NSCharacterSet *removeCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    array=[s componentsSeparatedByCharactersInSet:removeCharSet];

nslog (@ "разделенные строки% @",массив);

Это абсолютно полезно для вашего требования.

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