我想测试一个字符串,看看它是否在任何地方包含文本"hello"。我希望测试不要考虑大小写。我如何测试这个字符串?
使用下面的代码作为参考查找检查子字符串是否为字符串
NSString* string = @"How to test a string for text" ;
NSString* substring = @"string for" ;
NSRange textRange;
textRange =[string rangeOfString:substring options:NSCaseInsensitiveSearch];
if(textRange.location != NSNotFound)
{
//Does contain the substring
}
-[NSString rangeOfString: options:]
会做的
NSRange range = [string rangeOfString:@"hello" options:NSCaseInsensitiveSearch];
BOOL notFound = range.location==NSNotFound;
我假设所有单词都用空格分隔,并且没有标点符号。如果有标点符号
NSArray *dataArray = [inputString componentsSeparatedByString:@" "];
for(int i=0; i<[dataArray count]){
if([[dataArray objectAtIndex:i] isEqualToString:@"hello"]){
NSLog(@"hello has been found!!!");
}
}
我还没有测试过,但理论上应该可以。
查看文档,了解如何删除标点符号并使字符串全部小写。这应该是非常直接的
其他解决方案也不错,但你应该使用正则表达式,
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(hello)*$"
options:NSRegularExpressionCaseInsensitive
error:&error];
文档在这里:http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html