天天看点

NSString/NSMutable字符串——韩俊强…

1、OC基本数据类型(简单铺垫)

 //   NSInteger 

在64 位下相当于long,在非64位下相当于 int;

//    CGFloat

在64位下相当于double  在非64位下相当于 float;

   //如何使用API文档学习系统类库中类

    //help --》Documentation and

API reference

    //快捷键 option + 左键

  cmmand + 左键

进入类的头文件(严重警告:进系统头文件之后,退出时一定要按几次  cmmand +

z),看系统头文件适合已经对这个类有很大了解的学生

=========================================================

 3、//  

NSString 

  是一个字符串类,而且是一个不可变的字符串类,继承自NSObject

,用NSString创建的字符对象,一经创建就不能修改;

//类簇:将一些私有的子类组合在一起形成一个公共的抽象的超类,那么这个超类就是类簇;

   //创建一个字符串对象

    char *s = "lanou";

    NSLog(@"%s",s);

//oc中创建字符串

    NSString *str =

@"lanou";//快速创建字符串的方法

    NSLog(@"%@",str);

//创建空字符串

    NSString *str1 = [[NSString

alloc]init];

    NSLog(@"%@ %p

",str1,str1);

    str1 =

@"年后";//这种改变只是指针的重指向

    NSString *str2 = [NSString

string];

    NSLog(@"==%@",str2);

    //创建不可变空字符串是没有任何意义的

   //格式化创建不可变字符串对象

    NSLog(@"lanou");

    NSLog(@"lanou%@",@"i love

you");

    //我 拼接上 爱凤姐

    NSLog(@"我%@",@"爱凤姐");

    NSString *str3 =

[[NSString  alloc]initWithFormat:@"%@

%@",@"lanou",@"i love you"];

    NSLog(@"%@",str3);

    NSString *str4 = [[NSString

alloc]initWithFormat:@"我%@",@"爱凤姐" ];

    NSLog(@"%@",str4);

   例子:字符串:@"优衣库试衣间" ,@"趣事多"

    NSString *str6

=@"优衣库试衣间";

    NSString *str7 = @"趣事多";

    NSString *str5 = [[NSString

alloc]initWithFormat:@"%@%@",str6,str7];

    NSLog(@"%@",str5);

    4、//遍历构造器格式化创建字符串方法

    NSString *str8 = [NSString

stringWithFormat:@"我在家里洗衣覅,%@",@"你在优衣库买衣服"];

    NSLog(@"%@",str8);

//创建字符串的另一种方式(现在已经不用了);

NSString *str9 = [[NSString

alloc]initWithString:@"我在蓝欧37班"];

NSString *str10 = [NSString stringWithString:@"靠

,我也在蓝欧37班"];

NSLog(@"%@",str10);

    例子:

   //

============================================

 5、 //将c语言字符串转换为oc字符串比如:"ios"

  @"ios"

    NSString *str11 = [[NSString

alloc]initWithUTF8String:"ios"];

    NSLog(@"%@",str11);

    NSString *str12 = [NSString

stringWithUTF8String:"ios"];

    NSLog(@"%@",str12);

   6、//头文件初始化对象方法

 //将文件中的字符串内容读入到字符串对象中

  //第一个参数:文件的路径 

第二个参数:编码格式  第三个参数: 如果出错了返回值存放的位置

    //初始化方法

    NSString *str13 = [[NSString

alloc]initWithContentsOfFile:

@"/Users/laouhn/Desktop/37-Product/Lesson/OC/LessonNSString-04/Lesson-04/han.txt"encoding:NSUTF8StringEncoding

error:nil];

    NSLog(@"%@",str13);

   //遍历构造器方法

    NSString *str14 = [NSString

stringWithContentsOfFile:@"/Users/laouhn/Desktop/37-Product/Lesson/OC/LessonNSString-04/Lesson-04/han.txt"

encoding:NSUTF8StringEncoding error:nil];

    NSLog(@"%@",str14);

==========================================

   7、 //操作字符串的方法

//计算字符串长度的方法

    NSString *ss =

@"lanou3g";

    NSUInteger len = [ss

length];//无符号长整形

    NSLog(@"%lu",len);

   一个中文占三个字节

    NSString *ss2 = @"翔哥

今天晚上区如家吧?";

    NSLog(@"%lu",ss2.length);

8、//返回字符串片段的方法

    NSString *str15 =

@"abcdefgdef";

    NSRange rang = {3,3};

    NSString *subString = [str15

substringWithRange:rang];

    NSLog(@"%@",subString);

9、//返回字串在父串中范围

    rang = [str15

rangeOfString:@"def"];

    NSLog(@"loctation:%lu length

: %lu",rang.location,rang.length);//不是点语法

   //获取到从零位置到某个位置的字符不包含提供位置的字符

    NSString *str16 = [str15

substringToIndex:4];

    NSLog(@"%@",str16);

   //从某个位置开始获取字符串,直到父串的结尾,包含这个停工未知的字符

    NSString *str17 =

[str15  substringFromIndex:4];

    NSLog(@"%@",str17);

//返回格式化拼接的字符串

    NSString *str20 = [str16

stringByAppendingString:str17];

    NSLog(@"%@",str20);

    //练习3:把@“cang”后面

拼接上@“是你们的”

    NSString *cangString =

@"cang";

    NSString *newString

=  [cangString

stringByAppendingFormat:@"%@,%@",@"是你们的",@"不因不均"];

    NSLog(@"%@",newString);

    NSString *str18 = [cangString

stringByAppendingString:@"是世界的"];

    NSLog(@"%@",str18);

//字符串的替换

//将目标子串从父串中用我们给定的替换掉

    NSString *str19 = [str18

stringByReplacingOccurrencesOfString:@"cang"

withString:@"波多结衣"];

    NSLog(@"%@",str19);

    NSString *str21 =

@"中国北京中南海";

    //判断字符串是否具有某个前缀或者后缀

    BOOL isHas = [str21

hasPrefix:@"中国北京"];

    NSLog(@"%@",isHas ?

@"有这个前缀":@"没有这个前缀");

    BOOL Has = [str21

hasSuffix:@"南海"];

    NSLog(@"%@",Has ?

@"有这个后缀":@"无这个后缀");

//=============================================

   //比较两个字符串大小

    NSString *sstr3 = @"NBa";

    NSString *sstr4 = @"NBA";

    NSInteger n =

  [sstr3 compare:sstr4];

    switch (n) {

  case NSOrderedAscending:

      NSLog(@"%@

< %@",sstr3,sstr4);

      break;

      case

NSOrderedSame:

= %@",sstr3,sstr4);

NSOrderedDescending:

> %@",sstr3,sstr4);

  default:

    }

   //不区分大小写的比较方式

    n = [sstr3

caseInsensitiveCompare:sstr4];

    NSLog(@"%ld",n);

 //===================================================

 10、 NSMutableString

  是可变字符串 ,继承自Nsstring,所以Nsstring

所有的方法NSMutableString都可以调用

//这种创建字符串的形式可以提高一定的效率,如果存入的字符串小于开辟的虚拟空间长度,则直接放入,免去了开辟空间的时间,如果此时开辟的空间小于要放入字符串的长度,此时就要再开辟空间

    NSMutableString *mStr =

[[NSMutableString alloc]initWithCapacity:30];

    //插入一个字符串

    [mStr insertString:@"索宁"

atIndex:0];

    NSLog(@"%@",mStr);

    //创建可变字符串的另一种形式

    NSMutableString *mStr1 =

[[NSMutableString alloc]initWithString:@"我和他有一个约会"];

    NSLog(@"%@",mStr1);

//快速创建字符串,必须在后面加上  .mutableCopy

    NSMutableString *mStr2 =

@"我与僵尸有一个约会".mutableCopy;

    NSLog(@"%@",mStr2);

 11、 //可变字符串拼接

//格式化拼接

    [mStr2

appendFormat:@"%@",@"在日本岛" ];

   //删除某段字符串

appendString:@"吃着炸鸡喝着啤酒"];

   NSRange rang1 = {1,8};

deleteCharactersInRange:rang1];

    NSLog(@"-----%@",mStr2);

//=========================================================

   //改可变字符串

replaceCharactersInRange:NSMakeRange(2, 4)withString:@"任命广场"];

   //每个单词的首字母大写

    NSMutableString *mStr3 = @"i

am student come from DanCheng".mutableCopy;

   NSString * upFirst

=  [mStr3 capitalizedString];

    NSLog(@"%@",upFirst);

   //将所有的字母都大写

  NSString *upAllWord =   [mStr3

uppercaseString];

    NSLog(@"%@",upAllWord);

   //将所有字母都小写

    NSMutableString *mStr4 = @"I

AM STUDENT COME FROM DANCHENG".mutableCopy;

   NSString *loweAllWord = [mStr4

lowercaseString];

    NSLog(@"%@",loweAllWord);

//================转载请注明出处=================