2

我正在尝试将 aNSString分解为逗号分隔的组件。不知何故,我NSString包含 25000 个组件总是返回 25.500 个值,其中 500 个是空的NSStrings。这是我的代码的样子:

NSString* fileContents = [NSString stringWithContentsOfFile:filePath 
                                                   encoding:NSUTF8StringEncoding
                                                      error:nil];
/* do stuff */
NSMutableArray* components = 
 [NSMutableArray arrayWithArray:
   [fileContents componentsSeparatedByCharactersInSet:
     [NSCharacterSet characterSetWithCharactersInString:@",\n\r "]]];
4

1 回答 1

1

考虑这个例子:

[@"\n,\n"componentsSeparatedByCharactersInSet:
    [NSCharacterSet characterSetWithCharactersInString:@",\n\r "]];

结果显示了componentsSeparatedByCharactersInSet:行为方式。四个组件,都是空字符串。你明白为什么吗?

我不太确定你期望它做什么,但这就是它的作用。它只会在您列出的任何字符处分裂。如果其中两个彼此相邻,则会得到一个空字符串。加上第一个字符串之前的字符串和最后一个字符串之后的字符串。

所以你得到 25500 个组件的原因是,给定你给出的命令,那就是有多少个组件。

于 2013-05-03T01:57:18.363 回答