iOS开发学习专题-基础知识(一)NSString NSMutableString NSRange NSNotFound详细使用方式

来源:互联网 发布:魔法师雾化器做丝数据 编辑:程序博客网 时间:2024/05/02 19:50

本文主要讲解的是不可变字符串NSStringNSString可变字符串NSMutableStringNSRangeNSNotFound详细使用方式
近期主要做的是iOS开发基础知识Objective-C中常用NS家族详细使用介绍,之后还会有关于NS类家族的详细使用方式
包括类型和值之间的转换。敬请期待

文章是博主原创,转载请标明出处 http://blog.csdn.net/werctzzz/article/details/70862522

#pragma mark 不可变字符串    //  1.初始化方法    NSString *str1 = [[NSString alloc]initWithFormat:@"这是第%d个字符串",1];    NSLog(@"1%@", str1);    NSString *str2 = [[NSString alloc]initWithString: str1];//字符串类型的初始化,用str1创建str2,相当于拷贝;    NSLog(@"2%@",str2);    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        //  2.便利构造器    NSString *str3 = [NSString stringWithFormat:@"%@", str2];    NSLog(@"3%@",str3);    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/    //  3.字符串长度        //  3.1获取字符串长度        NSLog(@"str3长度为%ld", [str3 length]);            //  3.2获取字符串字节长度        long Slength = strlen([str3 UTF8String]);        NSLog(@"str3字节长度为%ld", Slength);            //  3.3获取字符串单个字节长度        // 遍历这个字符串,通过计算每一个字符字节来判断一下三种关系        for (int i = 0 ; i < str3.length; i++) {            NSString * temp = [str3 substringWithRange:NSMakeRange(i, 1)];            long cl = strlen([temp UTF8String]);            NSLog(@"每个字符字节长度%ld",cl);        }    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        //  4.字符串包含的内容        //  4.1 判断字符串是否包含某个前缀        //从前往后读取        if ([str3 hasPrefix:@"这是"]) {            NSLog(@"%@中包含前缀'这是'", str3);        }        if ([str3 hasPrefix:@"第"]) {            NSLog(@"%@中包含前缀'第'", str3);        }        NSLog(@"%d", [str3 hasPrefix:@"这是"]);        //判断你输入的字符串里是否有[@"这是第%d个字符串"]里的东西,有的话返回1,没有返回0.                //  4.2 判断字符串是否包含某个后缀        //从后往前读取        if ([str3 hasSuffix:@"串"]) {            NSLog(@"%@中包含后缀'串'", str3);        }        if ([str3 hasSuffix:@"第"]) {            NSLog(@"%@中包含后缀'第'", str3);        }        NSLog(@"%d", [str3 hasSuffix:@"串"]);        //判断你输入的字符串里是否有[@"这是第%d个字符串"]里的东西,有的话返回1,没有返回0.    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        //  5. 判断子串在一个字符串中的范围    NSString *string = @"一大波马宏达";    NSRange range = [string rangeOfString:@"马宏达"];    NSLog(@"location : %lu length: %lu",          range.location, range.length);    //从第range.location位开始,长度为range.length    //NSLog(@"%lu",NSNotFound);//没有发现0    NSString *s1 = @"么么哒,我了个草";    NSRange r1 = [s1 rangeOfString:@"我"];    NSLog(@"s1location : %lu s1length: %lu",          r1.location, r1.length);    if (r1.location == NSNotFound){        NSLog(@"不包含该字符串");    }else{        NSLog(@"包含该字符串");    }    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        //  6. 字符串截取        //  6.1 截取前面部分        //substringToIndex 从字符串的开头一直截取到指定位置        NSString *s2  = @"你是我的小苹果";        NSLog(@"%@",[s2 substringToIndex:5]);            //  6.2 截取从一个位置的后部分开始        //从3的位置开始截取        NSLog(@"%@",[s2 substringFromIndex:3]);            //  6.3 截取中间部分        NSRange r2 = NSMakeRange(2, 4);//从2的位置开始截取4个字符串        NSLog(@"%@",[s2 substringWithRange:r2]);    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        //  7. 拼接字符串    NSLog(@"%@",[s2 stringByAppendingFormat:@"|这是%d拼接的串%@",1,@"很坑"]);//拼接一段现加字符串    //Format 可以传好多参数,比如上面这个是格式串,可以吧一传进去    NSLog(@"%@",[s2 stringByAppendingString:s1]);//拼接一个已创建好的字符串        NSString * string2 = [s2 stringByAppendingFormat:@"无聊的%d下午,要%@",1,@"hi起来"];    //把s2后面拼接上这个新的字符串,并把新的字符串保存在string2里面    NSLog(@"%@",string2);    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        //  8. 替换字符串    NSLog(@"~~~%@",[string stringByReplacingOccurrencesOfString:@"马宏达" withString:@"陈伯"]);    //替换指定内容    NSLog(@"~~~%@",[[s2 stringByReplacingOccurrencesOfString:@"小苹果" withString:@"小萌义"] stringByAppendingString:s1]);    //替换s2指定内容之后,拼接s2    NSString *string3 = @"坑爹的王尼玛爱吃大盘鸡";//创建string3    NSString *string4 = [string3 stringByReplacingOccurrencesOfString:@"大盘鸡" withString:@"biangbiang面"];//把string3 里的指定内容替换保存在string4里面    NSLog(@"%@", string4);//打印string4    NSString *string5 = [string4 stringByReplacingOccurrencesOfString:@"坑爹的" withString:@"土豪"];//把string4 里的指定内容替换 保存在string5里面    NSLog(@"%@", [string5 stringByAppendingFormat:@"无聊的%d下午,要%@",1,@"hi起来"]);//在string5后面拼接一段字符串    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        //  9. 字符串比较    // -1,0,1 三个值    // 输出比较值是否相等相等为1,不等为0;    NSLog(@"%ld",[@"A" compare:@"B"]);    NSLog(@"%ld",[@"A" compare:@"A"]);    NSLog(@"%ld",[@"AA" compare:@"AB"]);    NSLog(@"%ld",[@"B" compare:@"A"]);    NSLog(@"%ld",[@"C" compare:@"B"]);    NSLog(@"%d",[@"123" isEqualToString:@"123"]);/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        // 10.字符串和数值类型转换        // 10.1 字符串转数值        NSString * string6 = @"1234";        NSString * string7 = @"3.14";        NSLog(@"%f",[string7 floatValue]);//转float方法        NSLog(@"%d",[string6 intValue]);//转int方法        //2种方法        // 10.2 数值转字符串        NSString *strInt = [[NSString alloc]initWithFormat:@"%d",543];        NSString *strFloat = [[NSString alloc]initWithFormat:@"%f",356.243];        NSString *strChar = [[NSString alloc]initWithFormat:@"%c",'a'];        NSString *strM = [[NSString alloc]initWithFormat:@"%@%@%@",strInt,strFloat,strChar];        NSLog(@"%@",strM);/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        // 11. 大小写转换操作    NSString *small = @"Title";    NSLog(@"%@",[small uppercaseString]);//大写    NSLog(@"%@",[small lowercaseString]);//小写    NSString *text = @"est sgsd yhdfg ydj weff waer cweers wtgserg";    NSLog(@"%@",[text capitalizedString]);//单词首字母大写    #pragma mark 可变字符串    // 1.初始化    NSMutableString * mString1 = [[NSMutableString alloc]initWithFormat:@"这是第%d个可变字符串",1];    NSLog(@"%@",mString1);    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        // 2.拼接字符串    NSString *sm1 = [[NSString alloc]initWithFormat:@"string1"];    NSLog(@"%p",sm1);    NSString *sm2 = [sm1 stringByAppendingString:@"string2"];    NSLog(@"%p %@",sm1 , sm2);    NSLog(@"%p", sm2);    [mString1 appendString: @"string2"];    NSLog(@"%@",mString1);    /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/        // 3.可变字符串的处理        // 3.1插入字符串 在指定位置之后插入字符串        [mString1 insertString:@"haah" atIndex:2];        NSLog(@"%@",mString1);            // 3.2删除字符串 在指定位置删除指定长度的字符串        [mString1 deleteCharactersInRange:NSMakeRange(2, 2)];        NSLog(@"%@",mString1);            // 3.3替换字符串 把指定位置的指定长度的字符串替换        [mString1 replaceCharactersInRange:NSMakeRange(2,4) withString:@"我们写的"];        NSLog(@"%@", mString1);    #pragma mark NSRange 和 NSNotFound 的用法    // 通常来说 NSRange NSNotFound 都是和 OC中的容器类 配合使用的    // 在上面的描述过程中我使用到了 NSRange 和 NSNotFound    // NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度        // NSRange详解:    NSString * expStr = @"python manage.py startapp app-name";    NSRange expRag1 = NSMakeRange (25, 3);    // 1。打印指定range的字符串    NSLog (@" %@", [expStr substringWithRange:expRag1]);        // 2。搜索字符串:    NSRange expRag2 = [expStr rangeOfString:@"startapp"];    // 找到名为"startapp"的字符串    if (expRag2.length > 0)        NSLog(@"%@", NSStringFromRange(expRag2));        // ⭐️NSStringFromRange方法,把NSRange返回一个NSString。    // ⭐️NSRangeFromString方法,把NSString转换为NSRange        // 从后向前反向搜索字符串:    NSRange expRag3 = [expStr rangeOfString:@"ar" options:NSBackwardsSearch];    // What did we find    if (expRag3.length > 0)        NSLog(@"%@", NSStringFromRange(expRag3));        // 关于搜索的条件这一自己点击进入查看以下是枚举    //    NSCaseInsensitiveSearch    //    NSLiteralSearch    //    NSBackwardsSearch    //    NSAnchoredSearch    //    NSNumericSearch    //    NSDiacriticInsensitiveSearch    //    NSWidthInsensitiveSearch    //    NSForcedOrderingSearch        // NSNotFound通常用在判断字符串中是否有指定的东西,NSNotFound表示没有发现、不存在。    // 例:    NSString * astring = @"伟大的我废果然,我了个草";    NSRange arange = [astring rangeOfString:@"我"];    NSLog(@"s1location : %lu s1length: %lu",arange.location, arange.length);    if (r1.location == NSNotFound){        NSLog(@"不包含该字符串");    }else{        NSLog(@"包含该字符串");    }



0 0