Ios 通过替换字符串中的重复出现,实现多字符串的有效方法

Ios 通过替换字符串中的重复出现,实现多字符串的有效方法,ios,objective-c,Ios,Objective C,我能用更少的代码来做这件事吗 urlString = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""]; urlString = [urlString stringByReplacingOccurrencesOfString:@"\t" withString:@""]; urlString = [urlString stringByReplacingOccurrencesOfString:@"\n" with

我能用更少的代码来做这件事吗

urlString = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""];
urlString = [urlString stringByReplacingOccurrencesOfString:@"\t" withString:@""];
urlString = [urlString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
urlString = [urlString stringByReplacingOccurrencesOfString:@"\r" withString:@""];

如果您只是想修剪字符串开头和结尾的空白和空行,可以使用

urlString = [urlString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

这包括您给出的所有示例。

如果您只是想从字符串的开头和结尾修剪空白和空行,可以使用

urlString = [urlString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

这包括您给出的所有示例。

您可以使用正则表达式从字符串中删除空白,空白位于字符串中的任何位置

NSString *removeWhitespaceRegex = @"\\s";   

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:removeWhitespaceRegex
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

NSString *string = @"Remove whitespace from this string.";

NSString *modifiedString = [regex stringByReplacingMatchesInString:string
                                                           options:0
                                                             range:NSMakeRange(0, [string length])
                                                      withTemplate:@""];

NSLog(@"%@", modifiedString);
这只是一个免责声明,上面的代码是通过快速查找某些方法而用心编写的,有些事情可能不起作用,但背后的想法应该是这样的


第二种可能更快的方法是使用JRG开发者提到的
NSCharacterSet
,但这将只删除尾随的空白。

您可以使用正则表达式从字符串中删除空白,空白位于字符串中的任何位置

NSString *removeWhitespaceRegex = @"\\s";   

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:removeWhitespaceRegex
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

NSString *string = @"Remove whitespace from this string.";

NSString *modifiedString = [regex stringByReplacingMatchesInString:string
                                                           options:0
                                                             range:NSMakeRange(0, [string length])
                                                      withTemplate:@""];

NSLog(@"%@", modifiedString);
这只是一个免责声明,上面的代码是通过快速查找某些方法而用心编写的,有些事情可能不起作用,但背后的想法应该是这样的


第二种,可能更快速的方法是使用<代码> NStraseStase<代码>,如JRG开发人员提到的,但是这将删除<强> >尾随空白。

如果一个字符串包含在中间,请删除这些字符串。或者只在开始和结束时使用一个数组,在一个while循环中使用一个动态增加的变量,然后在<代码> ObjuttCaldio:(ItVar)中使用它。如果一个字符串包含在中间,则要移除这些变量,或者只在开始和结束时使用?在while循环中使用一个数组,该数组带有一个动态递增的变量,该变量也用于
objectAtIndex:(intVar)
从来都不知道这种“修剪”方法!!好极了!:)从来都不知道那种“修剪”的方法!!好极了!:)是,
stringByTrimmingCharactersInSet
将仅删除集合中的尾随字符或起始字符。我已经更新了我的答案以反映这一点。干杯,没有注意到编辑:)。如果你真的在寻找某种字符模式,正则表达式将是一种选择。然而,在这种情况下,OP似乎在寻找空格、换行符等,我希望正则表达式最终会阻碍性能,而不是简单地执行
stringByReplacingOccurrencesOfString:
正如OP所示……是的,
stringByTrimmingCharactersInSet
只会删除集合中的尾随字符或起始字符。我已经更新了我的答案以反映这一点。干杯,没有注意到编辑:)。如果你真的在寻找某种字符模式,正则表达式将是一种选择。然而,在这种情况下,OP似乎在寻找空格、换行符等,我希望正则表达式最终会阻碍性能,而不是像OP显示的那样简单地执行
stringByReplacingOccurrencesOfString:
。。。