文档章节

Objective-C中的字符串比较

黑白大熊猫
 黑白大熊猫
发布于 2015/01/23 16:16
字数 268
阅读 15
收藏 0

Objective-C中,NSString的==操作符比较的是字符串地址,不是字符串内容,如果需要比较内容则需要使用isEqualToString:方法。具体的介绍可以看这里:http://iphonedevelopertips.com/cocoa/compare-nsstrings-objects.html 但是Xcode会对部分字符串做优化,相同的字符串会使用同一份拷贝,所以有时候也会出现意想不到的“正确”结果,比如:

 

1

2

3

4

5

6

7

8

NSString *str1 = @"Homebrew";

NSString *str2 = @"Homebrew";

 

// This compares the addresses of the string

if (str1 == str2)

  NSLog (@"str1 equals str2");

else

  NSLog (@"str1 does not equal str2");

这段代码会打印出 str1 equals str2,但是这样就不会:

 

1

2

3

4

5

6

7

8

9

10

// Create a C string

char *cStr = "Homebrew";

NSString *str3 = [NSString stringWithUTF8String:cStr];

NSString *str4 = @"Homebrew";

 

// Wrong - this compares the address of the string

if (str3 == str4)

  NSLog (@"str3 equals str4");

else

  NSLog (@"str3 does not equal str4");

 

另外,正确的字符串内容比较方法为:

 

1

2

3

4

5

6

7

8

char *cStr = "Homebrew";

NSString *str3 = [NSString stringWithUTF8String:cStr];

NSString *str4 = @"Homebrew";

 

if ([str3 isEqualToString:str4])

  NSLog (@"str3 equals str4");

else

  NSLog (@"str3 does not equal str4");

来源:http://all-ipad.net/string-compare-in-objective-c/?utm_source=rss&utm_medium=rss&utm_campaign=string-compare-in-objective-c

本文转载自:

黑白大熊猫
粉丝 3
博文 18
码字总数 2023
作品 0
太原
程序员
私信 提问
Objective-C语法之NSString字符串的那些事儿(三)

Objective-C语法之字符串那些事 Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除...

彭博
2012/03/09
467
0
Objective-C 语法之字符串那些事

Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSM...

鉴客
2011/10/04
502
0
Objective-C语法快速参考

大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧, 大部...

晨曦之光
2012/05/28
97
0
Object-C 入门

大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到 Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是...

长平狐
2012/10/09
275
0
Swift2.0语言教程之Swift2.0语言中的标准函数

Swift2.0语言教程之Swift2.0语言中的标准函数 Swift2.0中的标准函数 函数除了可以根据参数列表的有无分为无参函数和有参函数,还可以从定义角度分为用户自定义函数和标准函数两种。以上的示例...

大学霸
2015/07/17
330
0

没有更多内容

加载失败,请刷新页面

加载更多

新架构、新角色:TiDB Community Upgrade!

作者:Jian Zhang 经过几年的发展,TiDB 社区已经逐渐成熟,但是随着社区的发展壮大,我们逐渐感受到了现在社区架构上的一些不足。经过一系列的思考和总结,我们决定升级和调整目前社区组织架...

TiDB
31分钟前
6
0
jquery qrcode库提示not function

jquery qrcode 这个库能用,但是必须在初始化的时候,官方给的使用方法是 引入qrcode的库文件后,在js中写以下 html <div id="qrcode"></div> js jQuery('#qrcode').qrcode({ render: ......

shikamaru
35分钟前
14
0
MySQL数据库去重的简单方案

利用 distinct 对需要处理的字段进行去重 select distinct 字段名 from 表名 利用group by select * from 表名 group by 字段名 利用having select * from 表名 group by 字段名 having 字段...

FeanLau
38分钟前
9
0
字符串转换成整数

实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该...

蔚蓝_晴天
49分钟前
8
0
Eureka客户端续约及服务端过期租约清理源码解析

在之前的文章:EurekaClient自动装配及启动流程解析中,我们提到了在构造DiscoveryClient时除了包含注册流程之外,还调度了一个心跳线程: scheduler.schedule( new Ti...

Java学习录
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部