码迷,mamicode.com
首页 > 其他好文 > 详细

OC中字符串的使用

时间:2014-11-29 21:32:23      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:des   style   http   io   ar   color   os   使用   sp   

--------不喜勿喷-------

字符串分类:可变字符串和不可变字符串 可变字符串 继承 不可变字符串

             不可变字符串:对象指针的指向可以改变,对象的内容不能变。

                 可变字符串:对象指针的指向可以改变,对象的内容也可以变。

----不可变字符串-----

1、不可变字符串的创建

  1、创建空字符串:  NSString *str1 = [[NSString alloc]init];

  2、直接创建字符串: NSString *str2 = @"you are a beauty!";

  3、通过对象创建:    NSString *str3= [[NSString alloc]initWithString:str2];  //initWithString:(NSString *)

  4、通过初始化字符串:NSString *str4 = [[NSString alloc]initWithUTF8String:"hello world!"];  //initWithUTF8String:(const char *)

  5、通过格式化方式创建:NSString *str5 = [[NSString alloc]initWithFormat:@"%@,%i",str4,4];

注意:后面的变量可以是任意数据类型

 

  6、通过类方法: NSString *str6 = [NSString stringWithString:str2];

          NSString *str7 = [NSString stringWithFormat:@"%@,%@",str2,str3];

2、不可变字符串的拼接

  1、NSString * str1 = [NSString stringWithFormat:@"%@,%@",str6,str7];

  2、NSString *str2 = [str6 stringAppendString: str7];

3、求长度

  unsigned long length = [str1 length];

4、取出一个字符

  unichar *c = [str1 characterAtIndex:2];

5、比较

  1、Bool isSame = [str1 isEqualToString: str2];  //比较的时候区分大小写,返回值是YES和NO,输出的时候是1 和0

  2、 NSComparisionResult result = [str1 compare:str2];  //3个返回值  :NSOrderedAscding NSOrderedSame NSOrderDescending

  3、想使用不区分大小写比较的时候

  NSComparisionResult result = [str1 compare: str2 options :NSCaseInsensitiveSearch];

6、大小写转化:

  1、转化为大写:NSString strUp = [str1 uppercaseString];

  2、转化为小写:NSString strLow = [strUp lowercaseString];

7、在一个字符串中查找另一个字符串

  NSString str1 = @"good for you";

  NSString str2 = @"for";

  NSRange range = [str1 rangeOfString: str2];  

  //NSRange  是一个结构体 包含两个成员(location length)表示位置和长度

  类似NSRange的还有一个NSRect

8、前后缀的判断

  Bool isPre = [str1 hasPrefix:@"g"];

  Bool isSuf = [str1 hasSuffix:@"o"];

9、字符转化为数字

  NSString *str1= @"4";  //字符串必须是数字字符串

      int myInt = [str1 intValue];

10、字符串截取

  1、到指定位置截取

  NSString *subStr1 = [str1 SubstringToIndex:4];

  2、从指定位置开始

  NSString *subStr2 = [str1 SubStringFromIndex:3];

  3、根据取值范围取值

  NSString *subStr3 = [str1 substringWithRange: NSMakeRange(4, 3)];

-------可变字符串-------

不可变字符串的方法可变字符串都可以使用

1、创建

  1、空字符串  NSMutableString *mutStr1 = [[NSMutableString alloc]init];

  //大致的字符串范围:NSMutableString *mutStr2 = [[NSMutableString alloc]initWithCapacity:20];

  2、通过对象方法创建    NSMutableString *mutStr3 = [[NSMutableString alloc]initWithString:@"hello world"];

  3.通过类方法

        1、从本地文件读取

         OfFile:文件的路径

         encoding:编码方式,直接使用utf8即可

         error:报错的地方 直接设置成nil

    NSMutableString *mutString4 = [NSMutableString stringWithContentsOfFile:@"/Users/Desktop/事项.txt" encoding:NSUTF8StringEncoding  error:nil];

   2、从网络读取

        //统一资源定位器  作用:表示网络路径

        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

        NSMutableString *mutString5 = [NSMutableString stringWithContentsOfURL: url encoding:NSUTF8StringEncoding error:nil];

  4、基本操作   增 删 改 查

注意:所用的操作都不能越界

注意:下面这样定义变量,生成的时不可变字符串

        //NSMutableString *mutStr = @"good";

    NSMutableString *mutStr1 = [[NSMutableString alloc]initWithString:@"good for you"];

   1、增    

    [mutString6 insertString:@"fgood" atIndex:4];

         [mutString6 appendString:@"OK"];

   2、删

        [mutStr1 deleteCharactersInRange: NSMakeRange(2, 10)];

  3、改

        1.[mutStr1 replaceCharactersInRange: NSMakeRange(0, 4)withString:@"I Love Me"];

        2.[mutStr1 setString:@"you are beautiful"];

  4、查

        for (int i = 0; i< [mutStr1 length]; i++) {

            NSLog(@"%c",[mutStr1 characterAtIndex:i]);

        }

   5、替换方法

        [string replaceCharactersInRange: range3 withString :@"I Love You"];

 

OC中字符串的使用

标签:des   style   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/wscd/p/4131990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!