我试图在短语(NSString)中找到一个单词。NSArray元素与NSString的比较
为此,我将短语的组件分解为单个子字符串,现在我试图将它们与我正在查找的单词进行比较,但它不起作用。
什么是正确的方法和下面的软件修复?
NSString *myString = @"Mi Programa es genial";
NSArray *explodedDescription = [myString componentsSeparatedByString:@" "];
if ([explodedDescription objectAtIndex:1] == @"Programa") {
NSLog(@"Found");
}
请注意,由空格字符分割是一种非常幼稚的方法。文本可能是使用不同分隔符的语言,也可能是没有空格的换行符。 – 2009-12-28 18:01:58
或者它可能是一个子句中的最后一个单词(因此包括逗号,分号或终点标点,例如句号),或者它可能是第一个或不是第一个单词,因此在大小写上不同,或者它可能不是这个词的根本版本:它可能是一个动名词,比较级,最高级,过去式,过去分词,或根的任何其他派生词。 – 2009-12-29 00:52:41
唯一真正的解决方案是使用了解多种形式的标点符号的实际解析器来解析字符串,并使用可以将根与衍生物连接的数据库查找单词(例如,搜索“搜索”时匹配“搜索”)和一个可以解释拼写错误(例如,“查找”或“saerching”或“searthing”)的比较器。即便如此,还是要为自己争取很多很多的边缘案例。 – 2009-12-29 00:59:33