Ios 如何在Objective-C中检测其他单词中的单词
到目前为止,我能在短语中发现单词。例如,如果用户键入pork,则将返回名为熟猪肉的项目。但是,如果用户输入pork,像pork*这样的项目将不会被返回 这就是我如何比较数组并找出短语中的单词:Ios 如何在Objective-C中检测其他单词中的单词,ios,objective-c,Ios,Objective C,到目前为止,我能在短语中发现单词。例如,如果用户键入pork,则将返回名为熟猪肉的项目。但是,如果用户输入pork,像pork*这样的项目将不会被返回 这就是我如何比较数组并找出短语中的单词: for (NSString *allergicITem in matchAgainstArray) { NSString *lowerString = [allergicITem lowercaseString]; if ([theLowerCellString rangeOfStri
for (NSString *allergicITem in matchAgainstArray)
{
NSString *lowerString = [allergicITem lowercaseString];
if ([theLowerCellString rangeOfString:lowerString].location != NSNotFound)
{
cell.textLabel.textColor = [UIColor redColor];
}
else
{
cell.textLabel.textColor = [UIColor blackColor];
}
}
我的问题是如何解决这个问题,这样即使在单词pork*中有一个像*这样的小扩展名,它也会检测到这个单词
好的,简单地说,这就是我想要的:
如果一个数组中有单词pork
另一个阵列有工作猪肉*
我想检测并返回pork*这个词
我的代码没有返回pork*,因此我要问这个问题
如果需要进一步澄清,请告诉我
更新:
我有两个由两个独立数组填充的表视图。一个数组填充一个表视图,该表视图中填充了用户不需要的成分,另一个数组填充了一个表视图,该表视图中填充了食品的成分。如果食物中的一种成分与不受欢迎的食物中的一种成分相同,那么它将被标记为红色
因此,如果食品含有以下成分:
水
盐
鸡*
并且用户已填充其不需要的配料表视图,如下所示:
花生
鸡
面筋
当显示配料表视图时,chicken*对象应标记为红色
更新2:
证明我的观点的代码,所有人都可以测试:
NSMutableArray*badIng=[[NSMutableArray alloc]init];
NSMUTABLEARRY*总计=[[NSMUTABLEARRY alloc]init]
[badIng addObject:@"Chicken"];
[badIng addObject:@"gluten"];
[totalIng addObject:@"Chicken*"];
[totalIng addObject:@"water"];
for (NSString *badItem in badIng)
{
NSString *lowerbadString= [badItem lowercaseString];
NSString *totalString = [totalIng objectAtIndex:0];
NSString *totalLowerString = [totalString lowercaseString];
if ([totalLowerString rangeOfString:lowerbadString].location != NSNotFound)
{
NSLog(@"Here is the object: %@", badItem);
}
else
{
NSLog(@"We didn't find it");
}
}
请按以下方式列出您的清单:
" cooked pork "
" roast beef "
" candied yams "
" porkupine "
注意前导/尾随空格
然后用pork搜索上面的列表。煮熟的猪肉会相配,而茯苓不会相配。哇,看来我找到了一个更好的方法。因为我使用的是iOS 8,所以我做到了:
if ([theLowerCellString containsString:lowerString])
{
cell.textLabel.textColor = [UIColor redColor];
}
else
{
cell.textLabel.textColor = [UIColor blackColor];
}
现在它像一个符咒一样工作,并返回我需要的对象。您输入熟猪肉并搜索猪肉。注意空格。那么波克就不会对波库平有任何影响,如果你允许我举一个人为的例子的话。@Josh Caswell为什么这是一个重复的例子?OP已经在使用副本中的代码。显然,这个问题有一个特定的问题。简单地作为副本关闭不会帮助OP解决代码问题。如果lowerCellString的值为@pork*,则[lowerCellString rangeOfString:@pork]将返回NSRange{.location=0,.length=4}。我可能关错了,但我不明白你的意思。请澄清。该副本不是。清楚地描述您的问题不仅是让他人理解它的必要条件,也是您自己理解它的必要条件。您发布的代码没有显示您所说的问题。我在循环上方添加了一行来打印这两个项目。这里是控制台输出:2014-10-15 01:46:53.954 MatchWordsWithAsterisks[60753:303]在“Chicken*”中寻找“Chicken”[60753:46:53.955 MatchWordsWithAsterisks[60753:303]这里是对象:Chicken 2014-10-15 01:46:53.956 MatchWordsWithAsterisks[60753:303]在“鸡肉*”中寻找“面筋”2014-10-15 01:46:53.956 MatchWordsWithAsterisks[60753:303]我们没有发现它注意到rangeOfString:在“鸡肉*”中找到了“鸡肉”。