Newline chars以某种方式添加到我的字符串中。并且无法移除它们

时间:2011-01-13 14:13:44

标签: iphone objective-c

在我的一些字符串上似乎有一些新行字符。我认为情况就是这样,因为当我做一个简单的NSLog

NSLog(@"Test: %@",aNSMutableString);

我会得到如下的输出

Test:
I am a String

我尝试过使用

[mutableString stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

但它并没有删除任何迫使新线发生的事情。

在我检查新字符串长度的情况下,从具有4个字符'm3u8'的文件解析的字符串中有5个字符。

任何人都知道可能会发生什么?

由于 -code

P.S。 我知道我可以从我的所有琴弦中删除第一个字符,但感觉就像一个黑客,我仍然不知道发生了什么。

2 个答案:

答案 0 :(得分:3)

[mutableString stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]]; 

以上内容不会直接修改您的mutableString。它会返回一个新的自动释放的NSString,并修剪掉字符。见NSString doc

e.x。

NSString *trimmedString = [mutableString stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];
NSLog(@"Test: %@", trimmedString);

应该给你预期的结果。

答案 1 :(得分:0)

我认为@Sam的答案会解决您的问题,但我认为问题的根源是文件来源。你知道它是如何编码的吗?它是下载的一部分吗?我的猜测是你有一个带有“\ n \ r”终止行的Windows文件,你正在使用打破“\ n”的Unix字符串工具,从而留下一个领先的“\ r”。

验证文件的来源并使用适当的编码读取文档行。