NSString对象中是否有类似于indexOf
函数的内容?
使用- [NSString rangeOfString:]
:
- (NSRange)rangeOfString:(NSString *)aString;
在接收器中查找并返回给定字符串第一次出现的范围。如果您想知道字符串a是否包含字符串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
}
这种写法不太易读,但能提高性能。
我写了一个分类来扩展原始的NSString对象。也许你们可以参考一下。 (你也可以在我的博客文章中查看。)
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
code
code
NSRange.location
表示实际索引位置。 - devios1