-2

次のコード行を使用して、NSString の各文字を取得しようとしています。

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

「Jake」という単語の各文字を取得することを期待していますが、代わりに単語全体を取得しています。なんで?

4

2 に答える 2

1

この方法に関するAppleのドキュメントから

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

したがって、空のセパレーターは文字列の各文字を区切らないため、このメソッドはこのようには機能しません。

ここにあなたの質問に対する答えがあります

Objective-Cで文字を1つずつ使用してNSStringをNSArrayに変換する方法

于 2013-09-07T18:03:46.697 に答える
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];
}`
于 2013-09-07T18:08:09.153 に答える