Как проверить строку на текст - PullRequest
0 голосов
/ 24 апреля 2011

Я хотел бы проверить строку, чтобы увидеть, если где-нибудь она содержит текст "привет".Я бы хотел, чтобы тест не учитывал заглавные буквы.Как я могу проверить эту строку?

Ответы [ 5 ]

3 голосов
/ 24 апреля 2011

Используйте приведенный ниже код в качестве ссылки для поиска проверки подстроки в строке.

    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
    }
3 голосов
/ 24 апреля 2011

-[NSString rangeOfString: options:] сделает это.

1 голос
/ 24 апреля 2011
NSRange range = [string rangeOfString:@"hello" options:NSCaseInsensitiveSearch];
BOOL notFound = range.location==NSNotFound;
0 голосов
/ 24 апреля 2011

Другие решения здесь хороши, но вы должны действительно использовать регулярное выражение,

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

Документы здесь: http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

0 голосов
/ 24 апреля 2011

Я предполагаю, что все слова разделены пробелом и пунктуация отсутствует.Если есть пунктуация.

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

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

Я не проверял это, но теоретически это должно работать.

Ознакомьтесь с документами о том, как убрать знаки препинания и сделать строку строчными.Это должно быть довольно просто.

...