检查word是否在字符串中并替换字符串

时间:2014-02-28 21:32:04

标签: ios objective-c cocoa-touch

我需要一种方法来检查[msg valueForKey:@"text"]是否包含currentString,如果是,则应根据单词的长度替换字符*

我该怎么做?下面的代码是我走了多远:

NSDictionary *msg = [self.messages objectAtIndex:indexPath.row];

for (NSString *currentString in badwords)
{
    if ([[msg valueForKey:@"text"]]) {

    }
}

4 个答案:

答案 0 :(得分:2)

您可以使用stringByReplacingOccurrencesOfString方法:

NSString *newString = [oldString stringByReplacingOccurrencesOfString:currentString
                                                           withString:replacementString];

您可以像这样创建替换字符串:

NSMutableString *replacementString = [[NSMutableString alloc] init];

for (int i = 0; i < currentString.length; i++)
{
    [replacementString appendString:@"*"];
}

答案 1 :(得分:0)

您应该阅读NSString类引用。有一整套方法支持这种事情。根据您的具体需要,查看rangeOfString:或stringByReplacingOccurrencesOfString:withString:

等方法

答案 2 :(得分:0)

这个怎么样:

NSDictionary *msg = [self.messages objectAtIndex:indexPath.row];
NSString *redactedString = [msg valueForKey:@"text"];
for (NSString *currentString in badwords)
    redactedString = [redactedString stringByReplacingOccurrencesOfString:currentString
                                                       withString:@"*"];
NSLog(redactedString);

改编自@reecon。

答案 3 :(得分:0)

我发现了一个帮助实现这一目标的github项目。我希望其他人可以使用它。

https://github.com/IslandOfDoom/IODProfanityFilter