从 Objective-C 中的字符串中删除多个子字符串,给定每个子字符串的范围
Delete Several Substrings from a String in Objective-C, given Ranges of each Substring
这可以被视为 this question about how to 'Delete a substring given an NSRange'.
的后续问题
假设我有一个长字符串,我想从位置 'a' 中删除一些字符,从位置 'b' 中删除一些字符,从位置 'c' 中删除一些字符,以及很快。
如果它是一个单一的位置和范围,我会使用类似的东西:
NSString *result = [baseString stringByReplacingCharactersInRange:range withString:@""];
在这种有多个位置和范围的情况下,我总是可以使用 for 循环。但这会很不方便,因为我将不得不在每次删除某些内容的迭代中更改所有其他范围以及字符串大小。
是否有更简单的方法可以在一次迭代中完成此操作?
您可以删除从字符串末尾开始的子字符串。首先在 "b" 之后删除 "c",最后删除 "a"。在这种情况下,您不需要重新计算剩余子字符串的范围。
这可以被视为 this question about how to 'Delete a substring given an NSRange'.
的后续问题假设我有一个长字符串,我想从位置 'a' 中删除一些字符,从位置 'b' 中删除一些字符,从位置 'c' 中删除一些字符,以及很快。
如果它是一个单一的位置和范围,我会使用类似的东西:
NSString *result = [baseString stringByReplacingCharactersInRange:range withString:@""];
在这种有多个位置和范围的情况下,我总是可以使用 for 循环。但这会很不方便,因为我将不得不在每次删除某些内容的迭代中更改所有其他范围以及字符串大小。
是否有更简单的方法可以在一次迭代中完成此操作?
您可以删除从字符串末尾开始的子字符串。首先在 "b" 之后删除 "c",最后删除 "a"。在这种情况下,您不需要重新计算剩余子字符串的范围。