В любом случае, быстро разбить слово на массив символов в цели c? - PullRequest
3 голосов
/ 29 октября 2010

Например: NSString *strWord = "english";

Результат NSArray будет выглядеть примерно так: english

Я думаю, что можно сделать это с

[NSString componentSeparatedByCharacter: somecharacter], но я не знаю, что это за символ ...

Я написал что-то вроде этого для извлечения символа:

NSString *character;
for (int i=0; i<[strWord length]; i++) {
    character = [strWord substringWithRange:NSMakeRange(i, 1)];
}

Спасибо за помощь!

Ответы [ 2 ]

5 голосов
/ 29 октября 2010

Если вам нужно перечислить их и поддерживать iOS 4.0 или более позднюю версию, вы можете использовать

[strWord enumerateSubstringsInRange:NSMakeRange(0, [strWord length])
                            options:NSStringEnumerationByComposedCharacterSequences
                         usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
    // substring here contains each character in turn
}];

Вы также можете просто скопировать символы в буфер, используя -getCharacters:range:, если они вам на самом деле не нужныкак NSArray.Или вы можете просто перебрать строку (используя блочный метод, или повторно вызывая -characterAtIndex:, или скопировав весь буфер и итерируя по нему) и создать свой собственный массив.

4 голосов
/ 29 октября 2010

Сделайте это:

NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
for (int i=0; i < [myString length]; i++) {
    NSString *ichar  = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
    [characters addObject:ichar];
}

Вы также можете использовать это: http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/getCharacters:range:

Посмотрите здесь дополнительные параметры:

NSString to char []

Как преобразовать строку NSSt в char

...