2013-05-03 105 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