将NSString拆分为单词,然后将其重新加入原始形式

cha*_*eyh 0 objective-c nsstring ios

我正在拆分这样的NSString :(过滤字符串是一个nsstring)

seperatorSet = [NSMutableCharacterSet whitespaceAndNewlineCharacterSet];
    [seperatorSet formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];
NSMutableArray *words = [[filterString componentsSeparatedByCharactersInSet:seperatorSet] mutableCopy];
Run Code Online (Sandbox Code Playgroud)

我想把单词放回到带有原始标点符号和间距的过滤字符串形式中.我想要这样做的原因是我想改变一些单词并将其重新组合在一起.

Rob*_*ert 8

通过单词分割的更健壮的方法是使用字符串枚举.空格并不总是分隔符,并且并非所有语言都划分空格(例如日语).

NSString * string = @" \n word1!    word2,%$?'/word3.word4   ";

[string enumerateSubstringsInRange:NSMakeRange(0, string.length)
                           options:NSStringEnumerationByWords
                        usingBlock:
 ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
     NSLog(@"Substring: '%@'", substring);
 }];

 // Logs:
 // Substring: 'word1'
 // Substring: 'word2'
 // Substring: 'word3'
 // Substring: 'word4' 
Run Code Online (Sandbox Code Playgroud)