如何从字符串中删除\ r?

时间:2013-06-03 11:14:29

标签: objective-c nsstring

我不知道为什么但是从源代码返回的字符串最后带有“\ r”,看起来像这样,“String \ r \ n” ,但是当我在调试窗口中打印它时,它只将其视为“String”,但当我使用isEqualToString:进行比较时,它总是返回false,即使在调试窗口它们都是相似的

4 个答案:

答案 0 :(得分:4)

试试这个。

NSString *string = @"Whats Going on\r";
NSString *result = [string stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];

或者我们用来将特定字符串替换为字符串的简单方法。像

string = [string stringByReplacingOccurrencesOfString:@"\r" withString:@" "];

答案 1 :(得分:0)

您可以使用以下方法

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                    withString:(NSString *)replacement

示例:

NSString *string = [myString stringByReplacingOccurrencesOfString:@"\r"
                                                           withString:@""];

答案 2 :(得分:0)

我目前正在开发一个客户端 - 服务器应用程序,并且在传输的数据结尾时没有遇到\r的任何问题。但是你想说的是/r,所以就在这里。

因为它只在你的字符串的末尾,你不想删除你的字符串中的任何其他事件(如上所述):

yourStr = [yourStr substringToIndex:[yourStr length]-2]

现在,如果出现类型错误,您也会这样做,但这次只从字符串中删除一个字符,因为\r是一个转义字符而且只有一个字符'\r':< / p>

yourStr = [yourStr substringToIndex:[yourStr length]-1]

希望有所帮助:)

答案 3 :(得分:0)

您可以从 NSString 中删除 \r,但最好先确保它不会到达您的 NSStrings。如果您正在阅读文本文件,您可能会得到它们,因为源代码对行尾有这种奇怪的想法。与 macOS 上的 Excel 16 (!) 一样,导出 .csv 文件时。我确实选择了 UTF8 作为导出文本格式,但在字符串末尾以 \r 结束。当你用 VIM 读取和保存文件时,你可以看到文件格式是 [dos],或者发出命令 :set ff?,vim 会告诉你 fileformat=dos。将文件格式更改为 unix::set ff=unix,一切正常,\r 不见了。

解决方案来源:https://til.hashrocket.com/posts/hu3jlszfrf-change-dos-to-unix-text-file-format-in-vim