黑马程序员技术交流社区

标题: NSString字符串比较 [打印本页]

作者: 安若曦    时间: 2015-9-15 14:13
标题: NSString字符串比较
整理的,分享给大家
  1. /*
  2. 1、字符串比较函数

  3.     1)字符串比较大小
  4.     字符串根据排列顺序的不同,会有大小的差异,如果我们要比较两个字符串的大小的话,可以使用compare方法
  5.     compare 方法的返回结果有三种:
  6.   
  7.                NSOrderedAscending    升序(前面字符串小于后面字符串)
  8.                NSOrderedSame         相等
  9.                NSOrderedDescending   降序(前面字符串大于后面字符串)

  10.        str1 > str2        NSOrderedDescending        1
  11.        str1 < str2        NSOrderedAscending        -1
  12.        str1 == str2       NSOrderedSame              0

  13.     2)比较字符串大小,指定条件

  14.     如果忽略大小写的话,可以在options 里面加一个参数 NSCaseInsensitiveSearch;具体如下:
  15.       NSComparisonResult result2 = [str1 compare:str2 options:NSCaseInsensitiveSearch];

  16.     常见的有三个:
  17.      NSCaseInsensitiveSearch = 1,(不区分大小写字符)
  18.      NSLiteralSearch = 2,(进行完全比较,区分大小写。<默认>)
  19.      NSNumericSearch = 64,(比较字符串的字符个数,而不是字符值)

  20.     3)判断字符串是否相等

  21.      思考&实现:
  22.    
  23.         字符串判断相等是否能够使用“==”进行判断?

  24.         //“==” 不能够判断字符串是否相等的
  25.         //判断字符串内容是否真正相等,使用的是isEqualToString:
  26.         //isEqualToString: 是区分大小写的


  27. */


  28. #import <Foundation/Foundation.h>


  29. void test(){
  30.     NSString *str1 = @"abc";    //a 97
  31.     NSString *str2 = @"Abc";    //A 65
  32.    
  33.     //取出每个字符的ASCII码值,比较ASCII码值的大小
  34.     //compare 比较大小
  35.     //compare 默认的区分大小写
  36.     //compare 这个函数不能增加条件
  37.     //       NSComparisonResult result = [str1 compare:str2];
  38.    
  39.     //比较的时候不区分大小写的方法 NSCaseInsensitiveSearch,还参考字符的个数NSNumericSearch
  40.     //
  41.     NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch | NSNumericSearch];
  42.    
  43.    
  44.     //
  45.     switch (result) {
  46.         case NSOrderedAscending:
  47.             NSLog(@"str1 < str2  升序");
  48.             break;
  49.         case NSOrderedDescending:
  50.             NSLog(@"str1 > str2  降序");
  51.             break;
  52.         case NSOrderedSame:
  53.             NSLog(@"str1 == str2  相等");
  54.             break;
  55.             
  56.         default:
  57.             break;
  58.     }

  59.    
  60. }


  61. int main(int argc, const char * argv[]) {
  62.     @autoreleasepool {
  63.         
  64.         NSString *str1 = @"abc";    //a 97
  65.         NSString *str2 = @"Abc";    //A 65
  66.         NSString *str3 = [NSString stringWithFormat:@"Abc"];
  67.         
  68.         //地址的比较
  69.         //“==” 不能够判断字符串是否相等的
  70.         //判断字符串内容是否真正相等,使用的是isEqualToString:
  71.         //isEqualToString: 是区分大小写的
  72.         if ([str1 isEqualToString: str3]) {
  73.             NSLog(@"相等");
  74.         }else{
  75.             NSLog(@"不相等");
  76.         }
  77.     }
  78.     return 0;
  79. }
复制代码




作者: 大宝820    时间: 2015-9-15 14:33
学习了,赞一个
作者: jsh_513    时间: 2015-9-16 08:41
辛苦辛苦。。。。。。
作者: 安若曦    时间: 2015-9-16 09:28
jsh_513 发表于 2015-9-16 08:41
辛苦辛苦。。。。。。

(*^__^*) 嘻嘻……
作者: 摆摆    时间: 2015-9-16 10:38
支持支持,加油加油!
作者: 安若曦    时间: 2015-9-17 09:31
摆摆 发表于 2015-9-16 10:38
支持支持,加油加油!

fighting...
作者: wangganghua    时间: 2015-9-17 22:31
真是不错哦
作者: wangganghua    时间: 2015-9-17 23:11
真是不错哦!!
作者: malong0517    时间: 2015-9-18 19:30
留名 , 有用~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2