2014-03-06 85 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而不是達到你的期望。