到目前为止,我可以检测短语中的单词。例如,如果用户键入“猪肉”,则将返回名为“熟猪肉”的项目。但是,如果用户输入“猪肉”,则不会退回“猪肉*”等项目。
这是我比较我的数组和在短语中删除单词的方式:
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];
}
}
我的问题是如何解决这个问题,即使它在“猪肉*”这个词中有一个像“*”这样的小扩展名,它也会检测到这个词。
好的,非常简单的话,这就是我想要的:
如果一个数组中有“猪肉”一词
另一个阵列的作品是“猪肉*”
我希望检测并返回“猪肉*”这个词。
我的代码没有返回“猪肉*”,因此我问这个问题。
如果需要进一步澄清,请告诉我。
更新:
我有两个由两个独立数组填充的表视图。一个数组填充填充有用户不喜欢的成分的表视图,另一个数组填充填充有食品成分的表视图。如果食品的其中一种成分与其中一种不良商品相同,则会标记为红色。
因此,如果食物含有以下成分:
并且用户填写了他的“不良成分”表视图,如下所示:
当显示成分表视图时,“chicken *”对象应标记为红色。
更新2:
代码证明了我的观点(你们所有人都可以测试): NSMutableArray * badIng = [[NSMutableArray alloc] init]; NSMutableArray * totalIng = [[NSMutableArray 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");
}
}
答案 0 :(得分:1)
将您的列表设为:
" cooked pork "
" roast beef "
" candied yams "
" porkupine "
(注意前导/尾随空白。)
然后使用" pork "
搜索上面的列表。 " cooked pork "
将匹配," porkupine "
不会。
答案 1 :(得分:-1)
if ([theLowerCellString containsString:lowerString])
{
cell.textLabel.textColor = [UIColor redColor];
}
else
{
cell.textLabel.textColor = [UIColor blackColor];
}
现在它像魅力一样工作,并返回我需要的物品。