我正在尝试将NSString
拆分为NSArray
,尽管这通常很容易,但事实证明这很困难。我从我的Python服务器接收数据并在iPhone客户端上形成NSString
。我注意到有时当我从Python服务器收到多条消息时,我会NSLog
一个字符串,如:
Project: textOne
textTwo
将字符串添加到NSArray
并在该数组上调用NSLog
后,字符串将显示:
Project: (
"textOne\ntextTwo\n"
)
玩完代码后:
[str componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
[str componentsSeparatedByString:@"\n"];
[str substringToIndex:[str length]-1];
我设法制作了NSArray
的内容:
Project: (
"textOne",
textTwo
)
和
Project: (
"textOne",
textTwo,
""
)
我无法生成包含内容的NSArray
:
Project: (
textOne,
textTwo
)
如果有人可以提供帮助,我会非常感激。
答案 0 :(得分:4)
在使用stringByTrimmingCharactersInSet:分隔成组件之前修剪字符串,以防止在结尾或开始时出现空组件。
NSCharacterSet *separatorSet = [NSCharacterSet newlineCharacterSet];
NSString *trimmed = [str stringByTrimmingCharactersInSet:separatorSet];
[trimmed componentsSeparatedByCharactersInSet:separatorSet];
这不会阻止数组中间的空字符串。
另一种解决方案是在分离成组件后过滤掉任何不需要的字符串。