componentsSeperatedByString返回完整的单词

时间:2013-09-07 18:00:00

标签: ios nsstring nsarray

我正在尝试使用以下代码行获取NSString的每个字母:

NSArray *array = [string componentsSeparatedByString:@""];
//string is equal to Jake
NSLog(@"Array Count:%d",[array count]);

我期待得到“杰克”这个词的每一个字母,但我得到了整个字。为什么呢?

2 个答案:

答案 0 :(得分:1)

Apple's Doc关于此方法

NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
produces an array { @"Norman", @"Stanley", @"Fletcher" }.
  

所以空分隔符不会分隔字符串的每个字符,这个   方法不能这样工作。

以下是您的问题的答案

How to convert NSString to NSArray with characters one by one in Objective-C

答案 1 :(得分:1)

将字符串分隔为空的想法在逻辑上没有意义,就像试图除以零一样。 但要回答这个问题:

NSMutableArray *stringComponents = [NSMutableArray arrayWithCapacity:[string length]];
for (int i = 0; i < [string length]; i++) {
    NSString *character = [NSString stringWithFormat:@"%c", [string characterAtIndex:i]];
    [stringComponents addObject:character];
}`