我有一个字符串数组,字符串在意义上的电子邮件ID ...所以我需要检查数组是否包含我给的电子邮件ID ....还需要检查不区分大小写....目前我正在使用以下代码
if ([arrayAllEmail containsObject:email])
{
// do some stuff here...
}
问题是假设arraAllEmail包含Abc@gmail.com ....但是我给(email = abc@gmail.com)abc@gmail.com用于检查目的,它将返回“否”结果......这就是为什么我需要不区分大小写的搜索机制....所以任何人都知道如何解决这个问题请给我答案..
答案 0 :(得分:5)
两种不同的方法可以解决这个问题:
indexOfObjectPassingTest:
方法,并在测试块中放置不区分大小写的比较。以下是如何实施第二种方法:
if ([arrayAllEmail indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
return [email caseInsensitiveCompare:obj] == NSOrderedSame;
}] != NSNotFound) {
// do some stuff here...
}
答案 1 :(得分:2)
这是一种方法:
-(bool) array: (NSArray*) anArray containsAddress: (NSString*) emailAddresss
{
return [array indexOfObjectPassingTest: ^(id obj, NSUInteger idx, BOOL *stop)
{
return [obj caseInsensitiveCompare: emailAddress] == NSOrderedSame;
}
] != NSNotFound;
}
答案 2 :(得分:1)
if( [@"Some String" caseInsensitiveCompare:@"some string"] == NSOrderedSame ) {
// strings are equal except for possibly case
}
在这里,您可以使用objectindex传递搜索词和其他数组。
如果您需要任何进一步的帮助,请告诉我。 :)
答案 3 :(得分:1)
以下面的方式试试
for(NSString *str in arrayAllEmail)
{
if([str uppercaseString]
isEqualToString:[email uppercaseString]]
// strings are equal except for possibly case
}
}