OC中字符串判断是否相等(转载)

转载自:
http://leopard168.blog.163.com/blog/static/168471844201432510151882/

在 iOS 开发中, 有时需要判断两个字符串是否相等。 对于初学者来说, 由于概念不清楚,经常出现一些诡异的错误。

这里给出代码示例:

NSString *strA = [NSString stringWithFormat:@"a"];

NSString *strB = [NSString stringWithFormat:@"b"];

if( strA == strB)

     NSLog(@"A is equal to B");

    else

     NSLog(@"A is not equal to B"); 

运行这段code, 在console 上的输出是: A is not equal to B

代码做些改动, 将 strA 与strB 设为相等。

NSString *strA = [NSString stringWithFormat:@"a"];

NSString *strB = [NSString stringWithFormat:@"a"];

if( strA == strB)

     NSLog(@"A is equal to B");

    else

     NSLog(@"A is not equal to B"); 

运行这段code ,你会发现, 在console上的输出仍然是 A is not equal to B 。

这时候,你开始产生怀疑, 这是为什么呢 ?
问题出在 字符串对比的语句上。

if ( strA == strB) // 这个strA, strB 是指针, 虽然字符串的内容是相同的, 但指向字符串的 指针肯定是不同的, 也不能相同啊。 (为了更好地理解字符串,需要弄清楚 指针的概念。 内存的分配。 )

//if( strA == strB)

    if ([strA isEqualToString:strB]) 

iOS SDK 本身 也提供了 字符串对比的方法: isEqualToString:
用这个字符串方法时, 要注意的事项: if 的后面必须 是一对括号。既然 isEqualToString: 是一个method, method 的使用 都是通过 中括号 来完成的。

特别注意的是: 在 iOS 中,既有 (... ), 也有 [ ... ] , 二者是有差别的。 在使用时,要特别注意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 10,460评论 0 13
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,539评论 5 28
  • 在当前这个时代(比如说公元2016年),如果你并不是在维护历史遗留的文本处理代码,没有在每个地方都使用Unicod...
    纵横而乐阅读 7,673评论 3 16
  • 时间犹如指缝间的细沙,在不经意间就流逝了。不知不觉已经度过了大学中最美妙的一年,这一年,我认识了很多来自五湖四海的...
    游筇阅读 4,960评论 18 27
  • 第二十三封信 给你的第二十三封信 不知道 最近的你过得好吗 在璀璨的城市灯火中 忍住一切打扰你的姿态 连给你的信 ...
    旅岸阅读 2,118评论 0 5