我正在尝试使用以下代码行获取NSString的每个字母:
NSArray *array = [string componentsSeparatedByString:@""];
//string is equal to Jake
NSLog(@"Array Count:%d",[array count]);
我期待得到“杰克”这个词的每一个字母,但我得到了整个字。为什么呢?
答案 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];
}`