NSString的用法

不可变字符串NSString

  1.字符串创建: 通过字面量的方法快速创建一个对象 

<span style="font-size:18px;">   <strong> 
NSString *str = @"稀罕";
    NSLog(@"%@", str);
    str = @"你好";</strong></span>

  2.获取字符串长度: str.lengh

<pre name="code" class="objc"><span style="font-size:18px;"><strong>    NSString *str = @"ajoajwoiw";
    NSLog(@"%ld", str.length);</strong></span>
 

  3.截取字符串

    (1)substringFromIndex:从下标位置开始截取,包括下标位置,后面的内容都要 

<span style="font-size:18px;"><strong>    
    NSString *str = @"aruwujkrktio";
    NSString *newStr = [str substringFromIndex:5];
    NSLog(@"%@", newStr);</strong></span>

    (2)substringToIndex:从头开始,不包含下标截取   

<span style="font-size:18px;"><strong>    
     newStr = [str substringToIndex:5];
     NSLog(@"%@", newStr);</strong></span>

    (3)substringWithRange:(NSRange)

    NSRange是一个结构体,里面包含两部分内容,一个是location,就是范围的起始位置,另一个是length,截取的长度    

<span style="font-size:18px;"><strong>    NSRange range = {5, 5};
    newStr = [str substringWithRange:range];
    NSLog(@"%@", newStr);</strong></span>

    可以用NSMakeRange直接写

      newStr = [str substringWithRange:NSMakeRange(4, 3)];

<span style="font-size:18px;"><strong>
  <span style="font-family: Arial, Helvetica, sans-serif;">newStr = [str substringWithRange:NSMakeRange(4, 3)];</span>
  NSLog(@"%@",newStr);
</strong></span>

  4.拼接字符串
    (1)万能拼接法,能把任意类型转换成字符串
<span style="font-size:18px;"><strong>    
   NSString *newStr = [NSString stringWithFormat:@"%@%d%@", str, 12, @"ijrtajffgkl"]; // 将任意类型转换成字符串
   NSLog(@"%@", newStr);
</strong></span>
    
  5.字符串相等(主要判断内容是否相等)
<span style="font-size:18px;"><strong>    NSString *str = @"张三";
    NSString *str1 = @"张三";
    BOOL result = [str isEqualToString:str1];
    NSLog(@"%d", result);
</strong></span>
    str1 == str2是判断地址是否相等
  
  6.替换字符串
<span style="font-size:18px;"><strong>   
    NSString *str = @"床前明月光明";
    NSString *newStr = [str stringByReplacingOccurrencesOfString:@"明" withString:@"你好"];
    NSLog(@"%@", newStr);
<span style="font-family: Menlo;"> </span></strong></span>
 
   7.字符串的前缀和后缀
<span style="font-size:18px;"><strong>    
    NSString *str = @"NSString";
    BOOL result = [str hasPrefix:@"NS"];
    NSLog(@"%d", result);
    result = [str hasSuffix:@"ing"];
    NSLog(@"%d", result);
</strong></span>
    
   8.字符串的大小写
<span style="font-size:18px;"><strong>  
    NSString *str = @"abcdefgABCDEFG";
    NSLog(@"%@", str.uppercaseString);// 转换成大写
    NSLog(@"%@", str.capitalizedString);// 首字母大写,其他小写
    NSLog(@"%@", str.lowercaseString);// 转换成小写字母
</strong></span>

  9.找到字符串中的数字: 
如果字符串是"aaa111a",那么结果是0
<span style="font-size:18px;"><strong>    
    NSString *str1 = @"12aaa"; // 从第一个开始算,直到不再有数字了就结束
    NSInteger a = str1.integerValue;
    NSLog(@"%ld", a);
</strong></span>
 
  10.判断前面的字符串是不是包含第二个字符串
<strong>   
    NSString *str2 = @"2";
    BOOL result = [str1 containsString:str2];
    NSLog(@"%d", result); 
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span></strong>

  分辨可变和不可变字符串的方法:看返回值
    1.比如替换方法等方法,返回值是NSString * 是不可变的字符串方法
    2.返回值类型是void是可变的方法,可变的可以直接修改自身字符串的内容

可变字符串 NSMutableString:它是NSString的子类,拥有父类的特征还有行为
  1.字符串的创建:字面量创建的字符串都是不可变的,所以可变字符串创建采用常规方式
<span style="font-size:18px;"><strong>   
    NSMutableString *str = [NSMutableString string];
    // 有初值
    NSMutableString *str1 = [NSMutableString stringWithString:@"你好"];
    NSLog(@"%@", str1);
</strong></span>
   
  2.插入字符串
<span style="font-size:18px;"><strong>    NSMutableString *str = [NSMutableString stringWithString:@"151135"];  </strong></span>
<span style="font-size:18px;"><strong>    [str insertString:@"DLS" atIndex:0];</strong></span>
<span style="font-size:18px;"><strong>    NSLog(@"%@", str);
</strong></span>
  如果操作不可变的字符串都会产生一个新的字符串,而且原字符串不变 
<span style="font-size:18px;"><strong>   
    NSString *str = @"NIHAO";
    NSString *newStr = [str stringByReplacingOccurrencesOfString:@"n" withString:@"G"];
    NSLog(@"%@", str); // 输出结果是NIHAO
</strong></span>
    
  3.可变字符串的拼接 
<span style="font-size:18px;"><strong>   [str appendString:@"123"];
   NSLog(@"%@", str);</strong></span>

  4.可变字符串的删除元素

<span style="font-size:18px;"><strong>    [str deleteCharactersInRange:NSMakeRange(3, 2)];
    NSLog(@"%@", str);
</strong></span>
    

  5.可变字符串的替换

<span style="font-size:18px;"><strong>   
   [str replaceCharactersInRange:NSMakeRange(3, 3) withString:@"APP"];
    NSLog(@"%@", str);
</strong></span>


NSNumber, NSValue:主要用于类型转换

  1.NSNumber用于对象类型和基本数据类型的互相转换

    NSNumber *number = @10;
    NSNumber *num = [NSNumber numberWithInteger:100];
    NSInteger a = [num integerValue];
    NSLog(@"%ld", a);


  2.NSValue用于结构体和指针转换成基本数据类型

    NSRange range = {1, 3};
    // NSRange -> NSValue
    NSValue *value = [NSValue valueWithRange:range];
    NSLog(@"%@", value);
    // 转换回来
    NSRange newRande = [value rangeValue];
  

练习题:给定一个图片名,判断字符串中是否以png结尾,如果是就替换成jpg,不是就拼接.jpg
    
    NSString *str = @"saijt.jpg";
    // 先计算长度
    NSInteger length = str.length;
    NSString *newStr = [str substringFromIndex:length - 3];
    NSLog(@"%@",newStr);
    if ([newStr isEqualToString:@"png"]) {
        newStr = [str stringByReplacingOccurrencesOfString:@"png" withString:@"jpy"];
        NSLog(@"%@", newStr);
    } else if ([newStr isEqualToString:@"jpg"]){
        NSLog(@"%@", str);
    }else{
        newStr = [str stringByAppendingString:@".jpg"];
        NSLog(@"%@", newStr);
<span style="font-family: Arial, Helvetica, sans-serif;">    }</span>

练习题:判断年份并拼接

<span style="font-size:18px;"><strong>    
    NSString *date1 = @"2015-10-20";
    NSString *date2 = @"2015-10-21";
    NSString *date3 = [date1 substringToIndex:4];
    NSString *date4 = [date2 substringToIndex:4];
    if ([date3 isEqualToString:date4]) {
        date2 = [date2 substringFromIndex:5];
        NSString *newStr = [NSString stringWithFormat:@"%@ -- %@", date1, date2];
        NSLog(@"%@", newStr);
    }else{
        NSString *newstr = [NSString stringWithFormat:@"%@ -- %@", date1, date2];
        NSLog(@"%@", newstr);
    }
</strong></span>

    
    

   
   






      




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值