oc学习之Foundation框架--字符串

oc字符串有两种:NSString(不可变的字符串)和NSMutableString(可变的字符串),其中NSString是NSMutableString的父类.

//NSString

//创建

   NSString *str1 =@"mary"; //@""只能用于创建不可变的字符串

   NSString *str2 = [NSStringstringWithFormat:@"%@", str1];  //格式化的创建字符串

   NSString *str2_2 = [[NSStringalloc] initWithFormat:@"%@", str1]; //格式化的创建字符串,和上面的str2一样


//c字符串

  char *strC = "apple";

//c的字符串转为oc的字符串

  NSString *str3 = [NSString stringWithUTF8String:strC];

  NSString *str3_2 = [NSString stringWithUTF8String:"apple2"];

   

//oc的字符串转为c的字符串

  const char *cStr = [str3 UTF8String]; //const表示得到的是字符串常量


//获取字符串的长度

  NSString *str5  = @"apple";

  NSLog(@"长度:%lu",str5.length); //长度:5

        

//根据索引的位置获取字符串中的字符

  char ch = [str5 characterAtIndex:3]; //0开始,结果是l

        

//根据范围在大串中获取小串(包含开始的索引位置的字符)

  NSString *str7 = @"hello world";

  NSString *subStr1 = [str7 substringWithRange:NSMakeRange(73)];//结果是orl

        

//从指定的索引开始截取到最后(包含开始的索引位置的字符)

  NSString *subStr2 = [str7 substringFromIndex:3];//结果是lo world

        

//从开始截取到指定的位置(不包含截止索引位置的字符)

  NSString *subStr3 = [str7 substringToIndex:7];//结果是hello w


//比较两个字符串是否相等

[str8 isEqualToString:str9]或者[str8 isEqualTo:str9]返回值都是BOOL型的

[str8 compare:str9]返回值是NSOrderedAscending(升序)/NSOrderedDescending(降序)/NSOrderedSame(相同)

[str8 caseInsensitiveCompare:str9] == NSOrderedSame表示两个字符串相等(不区分大小写),若是不等于NSOrderedSame,就表示两者不相等


//把字符串中小写字母转换为大写字母

  NSString *str10 = [str uppercaseString];

        

//大写转小写

  NSString *str11 = [str lowercaseString];

        

//把字符串中首字母大写,其余的字母小写

  NSString *str12 = [str capitalizedString];


//判断某个字符串是否以特定的字符串作为开头

  [str hasPrefix:@"www"] 返回值为BOOL类型


//判断某个字符串是否以特定的字符串作为结尾

  [str13 hasSuffix:@"com"]返回值为BOOL类型


//遍历字符串中所有的字符

  for (int i=0; i<str.length; i++) {

       NSLog(@" %i 个字符为:%c",i+1,[str characterAtIndex:i]);

  }


//不可变的字符串拼接,返回一个拼接之后新的字符串

  NSString *str4 = @"hello";

  NSString *str5 = [str4 stringByAppendingString:@" world"]; //结果是hello world


//字符串分割

  NSString *str10 = @"http://astro.sina.com.cn/zt_d/fate_ast_month";

  //根据//进行分割,分割的结果放到数组当中

  NSArray *ary1 = [str10 componentsSeparatedByString:@"//"];

        NSLog(@"根据//分割之后的数组是:%@",ary1);

  //得到的结果是("http:","astro.sina.com.cn/zt_d/fate_ast_month")



//NSMutableString

//创建可变的字符串

  //创建一个空的可变的字符串

    NSMutableString *str1 = [NSMutableString string];

  //创建一个非空的可变的字符串

    NSMutableString *str2 = [NSMutableString stringWithString:@"apple"];

  //NSString 中用到的方法,在这里同样适用

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


//可变的字符串拼接,没有返回值,直接拼接到可变字符串的后面

  NSMutableString *str6 = [NSMutableString stringWithString:@"hello"];

  [str6 appendString:@" world"]; //结果是hello world


//在可变字符串的某个位置插入一个字符串

  NSMutableString *str7 = [NSMutableString stringWithString:@"aklsdhw"];

  [str7 insertString:@"123" atIndex:4];//结果是akls123dhw

        

//用一个新的字符串替代原有的可变字符串中某一段字符串(替换的和原来的个数不一定相等 )

  NSMutableString *str8 = [NSMutableString stringWithString:@"ashqwix"];

  [str8 replaceCharactersInRange:NSMakeRange(23withString:@"12543"];//结果是

as12543ix

        

//删除可变字符串中某个范围中的字符串

  NSMutableString *str9  = [NSMutableString stringWithString:@"askldnwuei"];

  [str9 deleteCharactersInRange:NSMakeRange(45)];//结果是askli







 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值