0

我想测试一个字符串,看看它是否包含文本“hello”。我希望测试不考虑大写。如何测试这个字符串?

4

5 回答 5

3

-[NSString rangeOfString: options:]会做的。

于 2011-04-24T17:26:19.460 回答
3

使用下面的代码作为参考来查找检查子字符串到字符串中。

    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
    }
于 2011-04-24T17:49:27.650 回答
1
NSRange range = [string rangeOfString:@"hello" options:NSCaseInsensitiveSearch];
BOOL notFound = range.location==NSNotFound;
于 2011-04-24T17:47:52.993 回答
-1

我假设所有单词都用空格分隔,并且没有标点符号。如果有标点符号。

NSArray *dataArray = [inputString componentsSeparatedByString:@" "];

for(int i=0; i<[dataArray count]){
 if([[dataArray objectAtIndex:i] isEqualToString:@"hello"]){
    NSLog(@"hello has been found!!!");
 } 
}

我没有对此进行测试,但它应该在理论上有效。

查看文档以了解删除标点符号并使字符串全部小写的方法。这应该很简单。

于 2011-04-24T17:28:25.530 回答
-2

这里的其他解决方案很好,但你真的应该使用正则表达式,

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(hello)*$"
                                                                   options:NSRegularExpressionCaseInsensitive
                                                                     error:&error];

文档在这里:http: //developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

于 2011-04-24T17:30:03.303 回答