无论如何要快速将一个单词分成目标c中的一个字符数组?

时间:2010-10-29 01:57:14

标签: objective-c c cocoa

例如:NSString *strWord = "english";

NSArray的结果将是:e n g l i s h

我认为可以用

来做

[NSString componentSeparatedByCharacter:somecharacter],但我不知道那个角色是什么......

我写了这样的东西来提取角色:

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

如果您需要枚举它们并支持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
}];

如果您实际上不需要将它们作为NSArray,您也可以使用-getCharacters:range:将字符复制到缓冲区中。或者你可以迭代字符串(使用块方法,或重复调用-characterAtIndex:,或者通过复制整个缓冲区并迭代它)并构建自己的数组。

答案 1 :(得分:4)

这样做:

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[]

How to convert an NSString to char