2013-05-03 48 views
2

我试图将逗号分隔的组件中的NSString分开。不知何故,包含25000个组件的我的NSString总是返回25.500个值,其中500个为空NSStrings。下面是我的代码如下所示:NSString characterSetWithCharactersInString返回空字符串

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

回答

1

考虑这个例子:

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

结果显示如何componentsSeparatedByCharactersInSet:的行为。四个组件,全部为空字符串。你明白为什么?

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

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

+0

非常感谢!你是一个拯救生命的人。 – InkGolem 2013-05-03 06:00:49