0

componentsSeparatedByString: を使用した文字列の分割にはいくつかの答えがあることは知っていますが、文字列に区切り文字がない場合はどうでしょうか。@"" を使用しても機能しません。

NSString *str = @"ABCDE";
NSArray *arr = [str componentsSeparatedByString:@""];
NSLog(@"%@", arr)
==> ABCDE

私が欲しいのは -

==> (A,B,C,D,E)

各キャラクターにアクセスできるように。ありがとう!

4

2 に答える 2

3

最も信頼性の高い手法は-[NSString enumerateSubstringsInRange:options:usingBlock:]NSStringEnumerationByComposedCharacterSequencesオプションを使用することです。

NSMutableArray* array = [NSMutableArray array];
[str enumerateSubstringsInRange:NSMakeRange(0, str.length)
                        options:NSStringEnumerationByComposedCharacterSequences
                     usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
    [array addObject:substring];
}];
于 2013-08-12T05:34:04.680 に答える
1

ループまたはループで使用[string characterAtIndex:i];します。for
- (NSString *)substringWithRange:(NSRange)aRange

NSMutableArray *arr = [[NSMutableArray alloc] init];
for (int i = 0; i < string.length; i++)
{
    unsigned int character = [string characterAtIndex:i];
    [arr addObject:[NSString stringWithFormat:@"%C",character]];
}
于 2013-08-12T03:51:30.890 に答える