2008-11-02 66 views

回答

85

使用-[NSString rangeOfString:]

- (NSRange)rangeOfString:(NSString *)aString; 

查找並返回接收器內的給定的字符串的第一個匹配的範圍內。

+8

和`NSRange類別。位置「是實際的索引。 – devios1 2014-08-14 20:51:47

+1

`if(NSRange.location!= NSNotFound)`then then found a match。 – 2016-06-21 14:26:32

18

我寫了一個類來擴展原始的NSString對象。也許你們可以參考它。 (你也可以看到在我的博客中article了。)

ExtendNSString.h:

#import <Foundation/Foundation.h> 

@interface NSString (util) 

- (int) indexOf:(NSString *)text; 

@end 

ExtendNSStriing.m:

#import "ExtendNSString.h" 

@implementation NSString (util) 

- (int) indexOf:(NSString *)text { 
    NSRange range = [self rangeOfString:text]; 
    if (range.length > 0) { 
     return range.location; 
    } else { 
     return -1; 
    } 
} 

@end 
+3

NSRange的更好用法應該如下: `code` - (int)indexOf:(NSString *)text { NSRange range = [self rangeOfString:text]; (range.location!= NSNotFound){ return range.location; } else { return -1; } } `code` – loretoparisi 2011-10-12 10:35:08

28

如果你只想知道,當一個字符串包含字符串b用我的方式來做到這一點。

#define contains(str1, str2) ([str1 rangeOfString: str2 ].location != NSNotFound) 

//using 
NSString a = @"PUC MINAS - BRAZIL"; 

NSString b = @"BRAZIL"; 

if(contains(a,b)){ 
    //TO DO HERE 
} 

這是不太可讀,但提高了性能