NSString characterSetWithCharactersInString返回空字符串

时间:2013-05-03 01:47:56

标签: ios csv nsstring substring

我正在尝试将NSString分成逗号分隔的组件。不知何故,包含25000个组件的NSString总是返回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 "]]];

1 个答案:

答案 0 :(得分:1)

考虑这个例子:

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

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

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

因此,根据您提供的命令,您获得25500个组件的原因是 的组件数量。