0

我不知道为什么,但是从源返回的字符串末尾带有“\r”,它看起来像这样,“String\r”,但是当我在调试窗口中打印它时,它只看到它为“ String",但是当我用它来比较 usingisEqualToString:时,即使在调试窗口中它们都相似,它也总是返回 false

4

4 回答 4

4

试试这个。

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

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

string = [string stringByReplacingOccurrencesOfString:@"\r" withString:@" "];
于 2013-06-03T11:16:08.533 回答
0

您可以使用以下方法

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

例子 :

NSString *string = [myString stringByReplacingOccurrencesOfString:@"\r"
                                                           withString:@""];
于 2013-06-03T11:21:20.147 回答
0

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

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

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

现在,如果出现类型错误,您也可以这样做,但是这次您只从字符串中删除一个字符,因为\r它是一个转义字符并且只有一个 char '\r'

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

希望能帮助到你 :)

于 2013-06-03T11:25:57.357 回答
0

您可以\r从您的 NSString 中删除,但最好确保它不会首先到达您的 NSString。如果您正在阅读文本文件,您可能会得到它们,因为源对行尾有这个奇怪的想法。与 macOS 上的 Excel 16 (!) 一样,在导出 .csv 文件时。我确实选择了 UTF8 作为导出文本格式,但最终\r以字符串结尾。你可以看到文件格式是[dos]你用vim读取和保存文件的时候,或者,发出命令: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

于 2021-05-05T23:16:08.217 回答