2014-03-06 70 views
0

我只是玩Xcode,现在使用Xcode在另一个字符串中找到一些字符串。这里的问题是它没有显示我期望的。 (显示“找不到匹配!”) 请提供任何提示? 谢谢,NSString范围它是如何工作的?

而且我的代码是:

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 



     NSString *listOfNames = @"huhuWARDdsfadfadsfsadfafsfsadfafr"; 
     NSString *capListOfNames = [listOfNames capitalizedString]; 

     NSString *name = @"WaRd"; 
     NSString *capName = [name capitalizedString]; 



     NSRange match = [capListOfNames rangeOfString:capName]; 
     if (match.location == NSNotFound) 
     { 
      NSLog(@"No match faound!"); 
     }else{ 
      NSLog(@"Found!"); 
      NSLog(@"location : %d",(int)match.location); 
      NSLog(@"length : %d",(int)match.length); 


     } 


    } 
    return 0; 
} 

回答

2

capitalizedString以大写首字母和其余字母小写返回您的字符串。

capName = [name uppercaseString];

再试目前,你在不包含"Ward"字符串寻找"Ward"(尽管它确实包含"WARD")。

编辑:capitalizedString使字符串大写的每个单词中的第一个字母,其余小写。


此外,你可以这样做:

NSRange match = [capListOfNames rangeOfString:capName 
             options:NSCaseInsensitiveSearch]; 

其中,好了,执行不区分大小写的搜索...

1

capitalizedString不仅使第一个字母大写,用uppercaseString而不是达到你的期望。