componentsSeparatedByString:@“”(数组中的每个字符)

时间:2013-05-11 07:09:22

标签: objective-c cocoa nsstring nsarray

我想在NSArray ("123" -> To NSArray with "1","2","3")中添加每个字符。我测试了componentsSeparatedByString:@""componentsSeparatedByString:nil,但它不起作用,任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:6)

根据您的需要,您可能希望通过组合字符枚举字符串,其中考虑了对重音字符进行编码的不同方式。

这可能不是一个大问题,但如果你使用enumerateSubstringsInRange:options:usingBlock:至少它会被处理掉。代码可能如下所示:

NSMutableArray *result;  

NSString *string = @"Genève, Zu\u0308rich, Bellinzona";
//                           ^
//      What humans know as: Zürich

result = [NSMutableArray array];
[string enumerateSubstringsInRange: NSMakeRange(0,string.length)
                           options: NSStringEnumerationByComposedCharacterSequences
                        usingBlock: ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
                            // If you want to see the way the string has been split
                            NSLog(@"%@", substring);
                            [result addObject: substring];
                        }
];

请注意,“è”是单个字符,但“ü”已编码为组合字符。两者仍然被正确识别以用于循环。如果你使用characterAtIndex:“ü”将被分成两部分(你和¨),这很可能不是你想要的。

答案 1 :(得分:-1)

你可以这样使用,

for (int i=0; i < [myString length]; i++) {
    ... [myString characterAtIndex:i]
   // You can then decide how to assign a value to each individual string, via a switch.

}