Foundation框架之 NSSting 和 NSMutableString

NSString的恒定性

 

 1.使用NSString类方法创建的对象是存储在内存的堆区域

 如:NSString* str=[NSStringstringWithFormat:@"jack"];

 

 使用一个OC字符串常量去初始化一个NSString指针,这个OC字符串常量是存储在内存的常量区

 如:NSString* str=@"jack";

 

 2.一旦字符串对象在内存中创建,那么这个字符串对象存在恒定性。

 即字符串对象在内存中创建(无论是堆还是常量区),这个字符串对象的内容都无法修改

 

 3.当要在常量区创建对象的时候,并不是直接创建

 而是在常量区搜索是否有一样的对象,如果有,直接指向,如果没有,才会重新创建

 同样,当要在堆区创建对象的时候,也不会直接创建,

 而是在堆区搜索是否有一样的对象,如果有,直接指向,如果没有,才会重新创建

 注意:在堆区创建的时候不会去常量区搜索在常量区创建的时候也不会去堆区搜索

 

 4.就算没有一个强指针指向,创建在常量区的对象不会被回收


NSString和NSMutableString常用方法的使用:


注意:NSString是NSMutableString的父类,所以NSMutableString可以使用NSString的所有方法,反之则不可以

    1. NSString *str  =@"我叫ios";//快速初始化(特殊用法)

    char *ch       ="我叫ios";

    1. NSString *str0 = [NSStringstringWithFormat:@"%@,%d",str,21];//格式化字符串
    2. NSString *str1 = [NSStringstringWithUTF8String:ch];//C字符串转化为UTF8编码
    3. NSString *str2 = [NSStringstringWithString:str];//通过浅拷贝,只拷贝指针不拷贝对象,str2str的地址相同,内容也 是相同的
    4. NSString *str3 = [strstringByAppendingString:@",你是谁呀?"];//字符串拼接加长
    5. (字符串截取)

    NSString *str4 = [str substringFromIndex:1];//从第几位开始截到最后

    NSString *str5 = [@"不骄不傲"substringFromIndex:1];

    NSString *str6 = [strsubstringToIndex:3];//从开始位置截到第几位

    NSString *str7 = [[strsubstringFromIndex: 3]substringToIndex:2];//从第几位开始截几个字符

    NSString *str8 = [strsubstringWithRange:NSMakeRange(2, 3)];//str对象中,从第二个位置,开始截取3个字符

    unichar c=   [strcharacterAtIndex:2]; //截取对应位置的字符

      NSLog(@"%C",c);

     

    1. (分解)

        NSArray *str9= [@"asd|tes|mmm" componentsSeparatedByString:@"|"];//通过制定字 

                 符分割字符串

    1. (查找)

    NSRange range = [@"12rasd124"rangeOfString:@"asd"];//第二个字符串在第一个字符串

        if (range.location !=NSNotFound)                  //如果可以找到

         {

             NSString *str10 = [@"12rasd124"substringWithRange:range];

         }

    1. (替换)

    NSString *str11 = [@"小明ios"stringByReplacingOccurrencesOfString:@"ios"

        withString:@"JS" ];

    1. (比较大小和相同)

    NSUInteger str12 = str.length;         //不管str是不是nil都可以这么判断

     (比较字符串大小)

    NSString *stra             =@"asd";

    NSString *strb             =@"dfs";

    NSComparisonResult result  = [stra compare:strb];

      比较字符串(是否一样)

    if ([@"asd" isEqualToString:@"asd"]) {}

    1. (路径相关)

    路径相关(暂时不管)

    //filepath 是文件路径(文件)

    [filepath lastPathComponent];                 //获得文件名

    [filepath pathExtension];                     //获得文件扩展名

    [filtpaht stringByDeletingLastPathComponent]; //获得文件的所在文件夹路径

    [filtpath stringByDeletingPathExtension];     //获得去除扩展名的文件路径

    1. (访问网页)

     //使用一个字符串保存一个网址的路径

        NSString *path  =@"http://www.itcast.cn/";

        //通过URLWithString将路径字符串设置给NSURL对象

        NSURL *u = [NSURLURLWithString:path];

        NSString *str=[NSStringstringWithContentsOfURL:uencoding:NSUTF8StringEncoding  

        error:nil];

        NSLog(@"%@",str);

     

    1. (文件写入与读取)

    [str writeToFile:@"/Users/nevergiveup/Desktop/123.doc" atomically:NO   encoding:NSUTF8StringEncoding error:&err];

     

    NSString *str3 = [NSString stringWithContentsOfFile:@"/Users/nevergivep/Desktop/123.doc" encoding:NSUTF8StringEncoding error:&err];

     

    [err localizedDescription]//调用这个方法可以打印错误信息

    1. (字符串匹配)

    NSString *String1 =@"NSStringInformation.txt";

    [String1 hasPrefix:@"NSString"] == 1 ? NSLog(@"YES") :NSLog(@"NO");

    [String1 hasSuffix:@".txt"] == 1 ? NSLog(@"YES") :NSLog(@"NO");

    1.  NSString *str=@"JackLoveRose";

     NSLog(@"%@",[strlowercaseString]);//转成小写

     NSLog(@"%@",[struppercaseString]);//转成大写

    1.  //将OC类型的字符串转换为c类型的字符串

     NSString *str=@"rosafdsfe";

     char *s=[str UTF8String];

    1.  //去除字符串前后的空格

     NSString *name=@"     j a c k     ";

     NSCharacterSet *set=[NSCharacterSet whitespaceCharacterSet];

     name = [namestringByReplacingOccurrencesOfString:@" "withString:@""];

     name = [name stringByTrimmingCharactersInSet:set];

    1.  (可变string的拼接)

    NSMutableString *mString  = [NSMutableStringstringWithFormat:@"今天是是好日子!"];

    NSMutableString *mString1 = [NSMutableStringstringWithFormat:@"好好学习!"];

    [mString appendString:mString1];

    [mString1 appendFormat:@"么么哒%d",12];

    1. NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小
-------------------------------------------------------------------------------------------------------------------
后续会增加相关的内容!
--------------------------------------------------------------------------------------------------------------------
这里感谢强大的互联网的技术支持,如涉及版权问题,请联系作者!
--------------------------------------------------------------------------------------------------------------------


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值