在给定每个子串的范围的情况下,从Objective-C中的字符串中删除多个子串

时间:2015-10-02 20:15:45

标签: ios objective-c nsstring

这可以被视为this question about how to 'Delete a substring given an NSRange'.

的后续问题

假设我有一个很长的字符串,我想从位置'a'删除一些字符,从位置'b'删除一些字符,从位置'c'删除一些字符,依此类推。

如果它是一个单一的位置和范围,我会使用类似的东西:

NSString *result = [baseString stringByReplacingCharactersInRange:range withString:@""];

在多个位置和范围的情况下,我总是可以使用for循环。但这样做会很不方便,因为在每次删除某些内容时,我都必须更改其他每个范围以及字符串大小。

在一次迭代中有更简单的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以从字符串末尾删除子字符串以开始。首先删除“b”之后的“c”,最后删除“a”。在这种情况下,您不需要重新计算剩余子串的范围。