本文主要讲解的是不可变字符串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(@"包含该字符串"); }
作者:werctzzz 发表于2017/4/27 17:55:17 原文链接
阅读:325 评论:0 查看评论