NSString的比较

isEqualToString:可以用来比较接收方和当作参数传递来的符号。它返回一个BOOL型数据来表示两个字符串的内容是否相同。声明如下:

- (BOOL) isEqualToString: (NSString *) aString;

举例说明:

NSString *string1 = @"hello 5";

NSString *string2;

string2 = [NSString stringWithFormat: @"hello%d",5];

if([string1 isEqualToString:string2])

{

    NSLog(@"They are same!");

}

 

compare:用来比较两个字符串,将接收对象和传递来的字符串进行比较,返回一个NSComparisonResult(就是一个enum型数据)来显示比较结果,声明如下:

-(NSComparisonResult) compare:(NSString *) string;

返回值的定义如下:

typedef enum _NSComparisonResult{
     NSOrderedAscending = -1,    // <升序
     NSOrderedSame,              // =等于
     NSOrderedDescending  // >降序
} NSComparisonResult;

备注:如果比较两个字符串是否相等时,应该用isEqualToString,而不能仅仅只是比较字符串的指针值。另外compare判断的话只会根据第一个字符来进行判断,比如100与90,那就是升序,abcdef与dc比较,也是升序。

 

 不区分大小写的比较

compare:也可以进行区分大小写的比较,它还有一种重载,多了一个option参数,用来给我们更多的选择与操作,方法具体定义如下:

-(NSComparisonResult) compare:(NSString *) string

                      option:(unsigned)mask;

 

options参数是一个位掩码,你可以使用位或运算符来添加选项标记,常用的选项如下:

NSCaseInsensitiveSearch:不区分大小写字符。

NSLiteralSearch:进行完全比较,区分大小写。

NSNumericSearch:比较字符吕的字符个数,而不是字符值。

例如:如果要进行字符串的比较,要忽略大小写但按字符个数的多少正确排序,那么应该如下使用:

if([thing1compare:thing2

option: NSCaseInsensitiveSearch

| NSNumericSearch]

== NSOrderedSame)

{

    NSLog(@“they match!”);

}

 

如何判断字符串里面还包含其他字符串

比如你要判断一个文件名里面是否包含“.avi”,这样可以判断是否可以用播放器打开它,再或者你想检查一个文件的开头是否包含了一个字符“my”,来判断它是否是你的文档。那么下面有两个方法来帮助进行判断:一个是检查字符串是否以另一个字符串进行开头,另一个是检查字符串是否以另一个字符串进行结尾:

-(BOOL) hasPrefix:(NSString *) aString;

-(BOOL) hasSuffix:(NSString *) aString;

那么如何判断字符串中是否包含另一个字符串呢?还有另一个函数:

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

返回的NSRange结构体,range.start为出现的第几个位置,range.length为要比较的字符串的长度,如果没有找到,则range.start则等于NSNotFound。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值