我见过一些关于过滤掉谓词中特殊字符的类似问题 - 但没有适合我的需求。我真的不确定我想做的事情是否可行,但我会把它放到社区:
我正在为包含大量 IPA 字符的字典处理发音字符串,例如: ȵ ɕ ŋ ẓ
我想做的是为这些字符设置一些替换,例如: n=ȵ x=ɕ ng=ŋ r=Ẓ
在搜索谓词中,以便搜索 n* 将导致以 ȵ 开头的任何内容,等等......
即使是其他像"v"这样的 IPA"字母",如果有一种简单的方法可以在搜索字母中切换其他 STRING 字母,那就最好用"w"来表示
似乎这应该在谓词之外完成。创建一个字典,其中键是要替换的字符串,值是替换。然后,有一个循环,循环遍历字典并对要搜索的字符串执行每次替换。替换后生成的字符串是您在谓词中使用的字符串。
这里得到了答案:stackoverflow.com/questions/21852502/nspredicate-ignore-numbers-in-string-pinyin我问的另一个问题...
这是代码[以防以后对其他人有帮助]我在类单词中用于字符串"pro"
- (NSString *)searchableStringValueTwo {
NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"ȵ"];
NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"n"];
return searchString;
}
- (NSString *)searchableStringValueThree {
NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"ɕ"];
NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"x"];
return searchString;
}
- (NSString *)searchableStringValueFour {
NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"ŋ"];
NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"ng"];
return searchString;
}
- (NSString *)searchableStringValueFive {
NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"Ẓ"];
NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"r"];
return searchString;
}
- (NSString *)searchableStringValueSix {
NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"v"];
NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"w"];
return searchString;
}