OGeek|极客世界-中国程序员成长平台

标题: ios - NSString characterSetWithCharactersInString 返回空字符串 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:47
标题: ios - NSString characterSetWithCharactersInString 返回空字符串

我正在尝试将 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 "]]];



Best Answer-推荐答案


考虑这个例子:

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

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

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

所以你得到 25500 个组件的原因是,根据你给出的命令,这就是 有多少个组件

关于ios - NSString characterSetWithCharactersInString 返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16350369/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4