• Foundation框架—字符串(NSString)


    NSString不可变字符串

      1.字符串的创建 

        //创建字符串常量

        NSString *string1 = @"hello";

        string1 = @"hello word";

         //alloc创建一个字符串

        NSString *string2 = [[NSString alloc] initWithString:@"hello"];

        NSString *string3 = [[NSString alloc] initWithFormat:@"hello %@",string1];

        NSLog(@"string2:%@",string2);

        NSLog(@"string3:%@",string3);

        

      2.字符串的拼接

        NSString *str1 = @"张三";

        NSString *str2 = @"李四";

        NSString *str3 = @"王五";

        NSInteger a = 10;

        

        NSString *string4 = [[NSString alloc] initWithFormat:@"%@,%@,%@,%ld",str1,str2,str3,a];

        NSLog(@"string4:%@",string4);

        

      3.类方法创建字符串

        NSString *string5 = [NSString stringWithString:@"这是一个字符串"];

        NSString *string6 = [NSString stringWithFormat:@"hello %@",string5];

        NSLog(@"%@",string6);

        

      4.字符串的比较

        NSString *s1 = @"zhangsan";

        NSString *s2 = @"zhangsan";

        

        //--------------比较指针--------------

        if (s1 == s2) {

            NSLog(@"指针地址一样");

        }

        //--------------比较内容--------------

        //isEqualToString  区分大小写的

        if ([s1 isEqualToString:s2]) {

            NSLog(@"字符串内容一样");

        }

        

      5.使用isEqualToString

         NSString *string7 = [[NSString alloc] initWithFormat:@"abc%@",@"def"];

        NSString *string8 = [[NSString alloc] initWithFormat:@"abc%@",@"def"];

            if ([string7 isEqualToString:string8]) {

            NSLog(@"string7和string8的内容一样");

        }

            if (string7 == string8) {

            NSLog(@"string7和string8的指针一样");

        }

        

      6.比较大小 

        NSString *string9 = @"changXiAngwEilai";

        NSString *string10 = @"Changxiangweilai";

        

        //compare  区分大小写的比较

        NSComparisonResult result = [string9 compare:string10];

        if (result == NSOrderedDescending) {

            NSLog(@"这是降序");

        }else {

            NSLog(@"这是升序");

        }

        

        //caseInsensitiveCompare:不区分大小写的比较

        result = [string9 caseInsensitiveCompare:string10];

        if (result == NSOrderedSame) {

            NSLog(@"不区分大小写相同");

        }

      7.判断字符串的开头

        NSString *string11 = @"changxiangweilai";

        if ([string11 hasPrefix:@"chang"]) {

            NSLog(@"string11是以chang开头");

        }

        

       8.判断字符串的结尾

     

        if ([string11 hasSuffix:@"lai"]) {

            NSLog(@"string11是以lai结尾");

        }

        

       9.字符串转换

        NSString *string12 = @"heLlO WoRd";

        

        //将字符串转换成小写lowercaseString

        NSLog(@"小写:%@",string12.lowercaseString);

        //将字符串转换成大写uppercaseString

        NSLog(@"大写:%@",string12.uppercaseString);

        //首字母改成大写,其他小写capitalizedString

        NSLog(@"首字母大写:%@",string12.capitalizedString);

        10.字符串和基本数据类型转换

        NSString *string13 = @"12";

        

        //string-> int

        NSInteger intValue = [string13 integerValue];

        NSLog(@"intValue:%ld",intValue);

        

        NSString *string14 = @"3.4";

        float floatValue = [string14 floatValue];

        NSLog(@"floatValue:%f",floatValue);

        

        NSString *string15 = @"12";

        [string15 boolValue];

        

        11.字符串的长度

        NSString *string15 = @"abcdefg";

        

        NSUInteger length = string15.length;

        NSLog(@"length:%ld",length);

        

        12.根据下标获取字符

        unichar c = [string15 characterAtIndex:3];

        NSLog(@"c:%c",c);

        

        13.字符串的截取

        NSString *string16 = @"www.baidu.com";

        

        //1.截取到某一个指定的位置  substringToIndex  (不包含当前的下标)

    //    截取出www

        NSString *subStr1 = [string16 substringToIndex:3];

        NSLog(@"subStr1:%@",subStr1);

        

        //2.从指定位置截取  substringFromIndex  (包含当前下标)

        //截取出com

        NSString *subStr2 = [string16 substringFromIndex:10];

        NSLog(@"subStr2:%@",subStr2);

        

        //3.从某一个指定的截取指定长度

        //baidu

        NSRange rg = {4,5};

        NSString *subStr3 = [string16 substringWithRange:rg];

        NSLog(@"subStr3:%@",subStr3);

        

        14.字符串的追加

        NSString *string17 = @"Andriod";

        

        //在Andriod后面追加 iOS

        NSString *appendStr1 = [string17 stringByAppendingString:@" iOS"];

        NSLog(@"appendStr1:%@",appendStr1);

        

        NSString *appendStr2 = [string17 stringByAppendingFormat:@" %@%d",@"iOS",9];

        NSLog(@"appendStr2:%@",appendStr2);

        

        15.字符串的检索

        NSString *string18 = @"12345678@qq.com";

        //检索字符串中的qq.com

        NSRange rg1 = [string18 rangeOfString:@"qqcom"];

        //返回的结果:如果找到了,则返回字符串的信息;如果找不带,则location会返回一个NSNotFound

        NSLog(@"location:%ld  length:%ld",rg1.location,rg1.length);

        if (rg1.location == NSNotFound) {

            NSLog(@"找不到");

        }

        

      . NSMutableString(可变字符串)

           1.可变字符串的创建

       

        //NSMutableString *mutStr1 = @"abc";  //不能这么写是常量@“abc

        NSMutableString *mutStr1 = [[NSMutableString alloc]  initWithString:@"字符串"];

        

        2.插入数据

        [mutStr1 insertString:@"可变" atIndex:0];

        

        3.追加

        [mutStr1 appendString:@"对象哈哈"];

        

        4.删除

        //删除“哈哈”

        NSRange rg2 = [mutStr1 rangeOfString:@"哈哈"];

        [mutStr1 deleteCharactersInRange:rg2];

        

        5.替换

        //(1)检索需要替换的字符串

        NSRange rg4 = [mutStr1 rangeOfString:@"字符串"];

        //(2)替换

        [mutStr1 replaceCharactersInRange:rg4 withString:@"数组"];

        NSLog(@"mutStr1:%@",mutStr1);

       

        6.按照某个字符将字符串截取成若干个字符串

        NSString *str = @"this is string";

        NSArray *arr = [str componentsSeparatedByString:@" "];

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

  • 相关阅读:
    hdu 1895 Sum Zero hash
    hdu 4277 USACO ORZ dfs+hash
    hdu 6010 Daylight Saving Time 泰勒公式
    Codeforces Round #FF (Div. 2) D. DZY Loves Modification 优先队列
    Codeforces Round #113 (Div. 2) B. Polygons Andrew求凸包
    poj 3304 Segments 线段与直线相交
    gym 101081 gym F. Auction of Services 最小生成树+倍增LCA
    hdu 1558 Segment set 线段相交+并查集
    gym 101081 E. Polish Fortress 几何
    SPOJ
  • 原文地址:https://www.cnblogs.com/wangyibo-666/p/5119033.html
Copyright © 2020-2023  润新知