Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何搜索字符串中出现的大小写?_Iphone_Objective C_Ios_Xcode_Range - Fatal编程技术网

Iphone 如何搜索字符串中出现的大小写?

Iphone 如何搜索字符串中出现的大小写?,iphone,objective-c,ios,xcode,range,Iphone,Objective C,Ios,Xcode,Range,如何使用rangeOfString搜索字符串中出现的大小写 这就是我目前所拥有的 for (NSString* key in words) { if ([searchfield.text rangeOfString:key].location != NSNotFound) { NSString *textresult = [words objectForKey:key]; NSLog(@"Answer: %@", textresult); resu

如何使用
rangeOfString
搜索字符串中出现的大小写

这就是我目前所拥有的

for (NSString* key in words) {

if ([searchfield.text rangeOfString:key].location != NSNotFound) 
{

       NSString *textresult = [words objectForKey:key];
       NSLog(@"Answer: %@", textresult);
       result.text = textresult;

       result.tag = 1;

}

谢谢

只需用大写或小写搜索相应的

[searchField.text rangeOfString:[key lowercaseString]].location != NSNotFound

如果您不在乎用户是使用大写还是小写,只需使用
nscaseinsensitivisearch
选项:

[searchfield.text rangeOfString:key options: NSCaseInsensitiveSearch].location 
   != NSNotFound

我将使用NSRange和[NSString lowercasesetring]创建搜索字符串和要搜索的单词的小写版本

然后使用小写搜索字符串的rangeOfString方法生成NSRange,然后使用“successRange”输出原始文本的相应块

下面是我为您准备的一个工作示例:

NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", @"key3", @"key4", @"key5",@"key6", nil];

NSArray *objects = [NSArray arrayWithObjects:@"How", @"are", @"you", @"doing", @"?",@"How are you doing?", nil];


NSDictionary * words = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

NSString * searchString = @"are";
NSString * lowercaseSearchString = [searchString lowercaseString];

for(NSString * key  in words){

    NSString *  text = [words objectForKey:key];
    NSString * lowercaseText = [text lowercaseString];

    NSRange successRange = NSRangeFromString(@"");

    NSRange lowercaseRange = [lowercaseText rangeOfString:lowercaseSearchString];

    if(lowercaseRange.location!=NSNotFound){
        successRange = lowercaseRange;
    }

    NSLog(@"key: %@, text: %@", key,text);
    if(successRange.length >0){
        NSLog(@"    text subStringWithRange: %@",  [text substringWithRange:successRange]);         
    }
}

}

或[[searchField.text lowercaseString]rangeOfString:[key lowercaseString]]。我已使用上述代码在表视图中进行搜索。它适用于大写和小写文本。
NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", @"key3", @"key4", @"key5",@"key6", nil];

NSArray *objects = [NSArray arrayWithObjects:@"How", @"are", @"you", @"doing", @"?",@"How are you doing?", nil];


NSDictionary * words = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

NSString * searchString = @"are";
NSString * lowercaseSearchString = [searchString lowercaseString];

for(NSString * key  in words){

    NSString *  text = [words objectForKey:key];
    NSString * lowercaseText = [text lowercaseString];

    NSRange successRange = NSRangeFromString(@"");

    NSRange lowercaseRange = [lowercaseText rangeOfString:lowercaseSearchString];

    if(lowercaseRange.location!=NSNotFound){
        successRange = lowercaseRange;
    }

    NSLog(@"key: %@, text: %@", key,text);
    if(successRange.length >0){
        NSLog(@"    text subStringWithRange: %@",  [text substringWithRange:successRange]);         
    }
}
  -(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
 { 
      flavourarray = [[NSMutableArray alloc]init];
      imagearray = [[NSMutableArray alloc]init];
      categoryarray = [[NSMutableArray alloc]init];
  [filteredListContent removeAllObjects];   // clear the filtered array first
 searchText=[searchText uppercaseString];

    NSString *cellTitle;

BOOL flag1=NO;
searchText=[searchText lowercaseString];
int i1=0;
j=0;
for (cellTitle in listContent)
{
NSComparisonResult result = [cellTitle compare:searchText     
    options:NSCaseInsensitiveSearch range:NSMakeRange(0, [searchText length])];
    if (result == NSOrderedSame)
    {

        if(flag1==NO)
        {
            filtered_flag=i1;
            flag1=YES;
        }
        [filteredListContent addObject:cellTitle];
        NSString *searchflavour = [[categoryarray_ipad objectAtIndex:j]objectForKey:@"flavour"];
        NSString *searchcategory = [[categoryarray_ipad  
         objectAtIndex:j]objectForKey:@"category"];
        NSString *searchimage = [[categoryarray_ipad objectAtIndex:j]objectForKey:@"image"];

        if (searchText.length !=0) {
        [categoryarray addObject:searchcategory];
        }
        [flavourarray addObject:searchflavour];
        [imagearray addObject:searchimage];
    }
    j++;
    i1++;
}
NSLog(@"filtered_flag:%d",filtered_flag);
NSLog(@"filtered:%@",filteredListContent);
searchresult =TRUE;

[itemstable_ipad reloadData];