我正在像这样拆分NSString :(过滤器字符串是nsstring)

seperatorSet = [NSMutableCharacterSet whitespaceAndNewlineCharacterSet];
    [seperatorSet formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];
NSMutableArray *words = [[filterString componentsSeparatedByCharactersInSet:seperatorSet] mutableCopy];


我想将单词放回带有原始标点和空格的过滤字符串形式。我要这样做的原因是我想更改一些单词并将其放回原来的位置。

最佳答案

由于您消除了原始标点符号,因此无法自动将其退回。

唯一的方法是不使用componentsSeparatedByCharactersInSet

另一种解决方案是遍历字符串,并针对每个字符检查其是否属于您的字符集。
如果是,则将char添加到列表中,并将子字符串添加到另一个列表中(可以使用NSMutableArray类)。
例如,通过这种方式,您知道第一个和第二个子字符串之间的标点字符是分隔符列表中的第一个字符。

10-01 16:39