我需要一种方法来检查[msg valueForKey:@"text"]
是否包含currentString
,如果是,则应根据单词的长度替换字符*
。
我该怎么做?下面的代码是我走了多远:
NSDictionary *msg = [self.messages objectAtIndex:indexPath.row];
for (NSString *currentString in badwords)
{
if ([[msg valueForKey:@"text"]]) {
}
}
答案 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项目。我希望其他人可以使用它。