• NSString和NSMutableString


    1.定义一个char类型的字符串,可以使用%s来进行输出

    char *p = "hello word";
     NSLog(@"%s",p);
    

    2.SString 可以用来声明一个NSString类型的字符串对象,使用%@进行输出

    NSString *myStr = @"NSString test";
    NSLog(@"%@",myStr);
    

    3.字符串的声明方法

      3.1用一个来创建另外一个字符串

    NSString *myStr2 = [[[NSString alloc] initWithString:myStr] autorelease];
    NSLog(@"用原来的mystr创建的新字符串是:%@",myStr2);
    

     3.2通过传入一个c语言字符串的首字符地址,用c语言的字符串创建oc的字符串对象

     NSString *myStr3 = [[[NSString alloc] initWithUTF8String:"here is a c string"] autorelease];
     NSLog(@"用c语言字符获得到的字符串的首地址,从而建立的NSString类型的字符串:%@",myStr3);
    

     3.3使用格式符创建字符串

    NSString *myStr4 = [[[NSString alloc] initWithFormat:@"I was ceate by format,the format is %d %c" ,5,'A'] autorelease];
    NSLog(@"这是一个使用格式符创建的字符串:%@",myStr4);
    

    4.三种创建临时字符串的方法,临时字符串是自动释放的,在开发中很难确认它是在什么时候释放的。

       4.1c语言的字符串转换成oc字符串对象

    NSString *temporaryStr1 = [NSString stringWithUTF8String:"here is a temporary string"];
    NSLog(@"这是我的使用stringWithUTF8String创建的临时字符串:%@",temporaryStr1);
    

     4.2使用格式符创建一个临时字符串

    NSString *temporaryStr2 = [NSString stringWithFormat:@"here is a temporary string %d %c %@",1,'R',@"hello"];
    NSLog(@"这是我的使用stringWithFormat创建的临时字符串:%@",temporaryStr2);
    

     4.3使用一个字符串创建一个临时字符串

    NSString *temporaryStr3 = [NSString stringWithString:myStr];
    NSLog(@"这是我的使用stringWithString创建的临时字符串:%@",temporaryStr3);
    

    5.两个字符串关系的判断

      5.1判断两个字符串是否相等

    BOOL ret = [temporaryStr3 isEqualToString:myStr];
    BOOL ret1 = [temporaryStr1 isEqualToString:temporaryStr3];
    NSLog(@"temporaryStr3 和 myStr的相等与否的关系是:%@",ret == 1?@"相等":@"不相等");
    NSLog(@"temporaryStr1 和 temporaryStr3的相等与否的关系是:%@",ret1 == 1?@"相等":@"不相等");
    

     5.2比较两个字符串的大小:

    当两个字符串相等时显示:NSOrderedSame 当大于目标字符串时显示:NSOrderedDescending 当小雨目标字符串时显示:NSOrderedDescending

    比较是返回的结果对象是NSComparisonResult:

    if(ret2 == NSOrderedSame){
         NSLog(@"temporaryStr1 与 temporaryStr3 是相等的");
    }else if(ret2 == NSOrderedAscending){
         NSLog(@"temporaryStr1 < temporaryStr3");
    }else if(ret2 == NSOrderedDescending){
         NSLog(@"temporaryStr1 > temporaryStr3");
    }else{
         NSLog(@"这个事情不可能发生啊,为什么?");
     }
    

    6.从一个字符串中查找它的子字符串

    NSString * str = @"I am a poor man";
    NSString * subStr = @"man";
    // 在str字符串当中查找它的子字符串的位置
    // NSRange由两个长整形(NSUInteger)组成,一个是位置(location),一个是长度(length)
    NSRange range1 = [str rangeOfString:subStr];
    //NSLog(@"Range is:%@",NSStringFromRange(range1));
    NSLog(@"substr的第一个字符在str中的位置是:%lu ,substr的长度是:%lu",range1.location,range1.length);
    

    7.字符串的提取(从父字符串中提取一部分出来,生成一个新的字符串)

    NSString *parentStr = @"123456789";
    // 从首字符开始向后截取6个字符(不包括第6个,因为是index是从0开始的)生成一个新字符串,返回字符串地址
    NSString *subStr1 = [parentStr substringToIndex:6];
    NSLog(@"substringToIndex新生成的字符串是:%@",subStr1);
    // 从第6个字符开始(包括第6个)到最后一个字符,生成新字符串,返回字符串地址
    NSString *subStr2 = [parentStr substringFromIndex:3];
    NSLog(@"substringFromIndex新生成的字符串是:%@",subStr2);
    // 从第3个位置(位置从0开始计算)到最后一个字符,生成新字符串,返回字符串地址
    // 从第3个位置开始,截取5个字符;
    //NSRange range = {3,5};
    NSString *subStr3 = [parentStr substringWithRange:NSMakeRange(3, 5)];
    NSLog(@"substringWithRange新生成的字符串是:%@",subStr3);
    

    8.可变字符串的操作,在可变字符串中NSString的所有操作,NSMutableString都可以实现,并且NSMutableString有自己的增删改查方法

    NSMutableString的声明的时候,@“abc”的方法是不行的,@“abc”是创建一个不可变的字符串,无法将一个不可变的字符串赋值给一个不可变的字符串的指针

       8.1.可以使用初始化,并且向字符串设值的方式进行对字符串赋值,如果再次设值时会替换原来字符串的内容

    NSMutableString * mutaleStr1 = [[NSMutableString alloc] init];
    [mutaleStr1 setString:@"我好开心啊"];
    NSLog(@"可以使用初始化,并且向字符串设值的方式进行对字符串赋值 例如:%@",mutaleStr1);
    

     8.2想原来的字符串中追加字符串

    [mutaleStr1 appendString:@",哈哈哈"];
    NSLog(@"在原来字符串的末尾新加了一部分字符串 例如:%@",mutaleStr1);
    

     8.3用格式符追加字符串,可以追加任意基本类型的字符串

    [mutaleStr1 appendFormat:@" my age is %d",28];
    NSLog(@"在原来字符串的末尾使用格式符追加了一部分字符串 例如:%@",mutaleStr1);
    

     8.4在原来的字符串中间任意位置插入字符,在atIndex的地方插入一个字符

    [mutaleStr1 insertString:@"------" atIndex:10];
    NSLog(@"在原来字符串的中间插入任意字符 例如:%@",mutaleStr1);
    

     8.5删除字符串的一部分,删除range范围之内的字符

    [mutaleStr1 deleteCharactersInRange:NSMakeRange(0, 10)];
    NSLog(@"在原来的字符串上删除一部分字符 例如:%@",mutaleStr1);
    

       8.6替换一部分字符,将range范围内的字符替换成任意的字符

    [mutaleStr1 replaceCharactersInRange:NSMakeRange(0, 6) withString:@"xxxxxxxxx "];
    NSLog(@"在原来的字符串上替换一部分字符 例如:%@",mutaleStr1);
    

      

  • 相关阅读:
    npm常用命令
    关于事件委托和时间冒泡(以及apply和call的事项)
    js 杂记
    angular中关于ng-repeat的性能问题
    关于日期的一些东西
    杂记
    angular中关于自定义指令——repeat渲染完成后执行动作
    angular中事件戳转日期的格式
    ES6-promise
    angular中ng-class的一些用法
  • 原文地址:https://www.cnblogs.com/zwhFighting/p/4550641.html
Copyright © 2020-2023  润新知