Как разделить строку NSString на каждый символ в строке? - PullRequest
6 голосов
/ 18 марта 2010

У меня есть следующий код, который работает, как я ожидаю. Что я хотел бы знать, если существует приемлемый способ Какао для разбиения строки на массив с каждым символом строки как объекта в массиве?

- (NSString *)doStuffWithString:(NSString *)string {
    NSMutableArray *stringBuffer = [NSMutableArray arrayWithCapacity:[string length]];
    for (int i = 0; i < [string length]; i++) {
        [stringBuffer addObject:[NSString stringWithFormat:@"%C", [string characterAtIndex:i]]];
    }

    // doing stuff with the array

    return [stringBuffer componentsJoinedByString:@""];
}

Ответы [ 2 ]

8 голосов
/ 18 марта 2010

Поскольку строка уже является массивом символов, это кажется ... избыточным.

3 голосов
/ 18 марта 2010

Если вам действительно нужно NSArray из NSString с по одному символу каждый, я думаю, ваш способ его создания в порядке.

Но представляется сомнительным, что ваша цель не может быть выполнена более читабельным, безопасным (и оптимизированным по производительности) способом. Одна вещь особенно кажется мне опасной: разделение строк на символы Юникода (в большинстве случаев) не делает то, что вы ожидаете. Есть символы, которые состоят из более чем одной кодовой точки Unicode. и есть кодовые точки Unicode, которые на самом деле являются более чем одним символом. Если вы не знаете об этом (или не можете гарантировать, что ваш ввод не содержит произвольных строк), вы не должны ковыряться в строках юникода на уровне символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...