Objective-C基础—字符串对象NSString,NSMutableString
来源:互联网 发布:矢量图下载 知乎 编辑:程序博客网 时间:2024/04/27 20:58
一个NSString对象可以存储一段Unicode字符。在cocoa中,所有和字符、字符串相关的处理都是使用NSString来完成。值得一提的是,NSString继承自NSObject,而字符串取下标(Index)和其它类型的数组一样从0开始。NSString所指向的字符串往往是字符串常量,是不可变的。通过NSString对字符串进行的修改通常是生成新的字符串常量替换旧的,并不是在原有字符串上进行修改。NSMutableString类用来创建可以更改字符串的字符串对象,因为是NSString的子类,所以可以使用NSString类的所有方法。
<span style="font-size: 18px;">1.创建一个空字符串 </span><span style="font-size:18px;">NSString * str = [[NSString alloc] init]; NSString * str = [NSString string]; //数组和字典也可以使用这种方式</span>
<span style="font-size: 14px; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"><span style="font-family:Arial;"> </span></span><span style="font-size:18px;"><span style="font-family:Arial;"><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);">//快速创建一个字符串常量</span><span style="line-height: 24px;"><br style="box-sizing: content-box; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);" /></span><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"> NSString *string1 = @"abc";</span><span style="line-height: 24px;"><br style="box-sizing: content-box; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);" /></span><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"> NSString *string2 = @"cde";</span><span style="line-height: 24px;"><br style="box-sizing: content-box; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);" /></span><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"> NSLog(@"%@ %@",string1,string2);</span><span style="line-height: 24px;"><br style="box-sizing: content-box; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);" /></span><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"> //创建一个格式化的字符串 (内存在堆区)</span><span style="line-height: 24px;"><br style="box-sizing: content-box; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);" /></span><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"> NSString *string3 = [[NSString alloc]initWithFormat:@"整数: %d",10];</span><span style="line-height: 24px;"><br style="box-sizing: content-box; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);" /></span><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"> NSString *string4 = [[NSString alloc]initWithFormat:@"浮点数: %f",10.0];</span><span style="line-height: 24px;"><br style="box-sizing: content-box; color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);" /></span><span style="color: rgb(51, 51, 51); line-height: 24px; background-color: rgb(245, 245, 245);"> NSLog(@"%@ %@",string3,string4);</span></span><span style="font-family:SimHei;"></span></span><span style="font-family: Arial; font-size: 18px;"> </span><span style="font-size:18px;font-family: Arial;">2.快速创建一个字符串 NSString * str = [[NSString alloc] initWithString:dStr]; //dStr是字符串对象NSString * str = [NSString stringWithString:@"Hello!",]; 3.创建一个格式化字符串 NSString * str = [[NSString alloc] initWithFormat:@"%d",520]; NSString * str = [NSString stringWithFormat:@"%.2f",3.1415926]; 4.用标准c创建字符串char *Cstr ="今天很悲剧!"; //取字符串的地址NSString *str = [[NSString alloc] initWithCString:Cstr]; NSLog(@"str:%@",str); [str release]; 5.从设备上输入字符串 charbuffer[1000]; //使用一个缓冲区 NSLog(@"请输入字符串:"); scanf("%s",buffer); NSString *str = [NSString stringWithUTF8String:buffer]; //将缓冲区赋给NSString变量 NSLog(@"字符串str = %@",str); 6.转换为基本数据类型 NSString *str = @"5"; float f1 = [str floatValue]; NSLog(@"str = %.2f",f1); 7.拼接字符串 //方式1NSString *appStr = [str1 stringByAppendingString:str2]; //方式2NSString *appStr = [str1 stringByAppendingFormat: @"%@",str2]; //方式3NSString *appStr = [[NSString alloc] initWithFormat: @"%@%@",str1,str2]; 8.查找字符串 NSString *str = @"abcdefghijklmn"; NSString *str1 = @"ijk";NSRange range = [str rangeOfString:str1]; NSLog(@"%@",NSStringFromRange(range)); NSLog(@"%d",range.location); NSLog(@"%d",range.length); if(range.location != NSNotFound) { NSLog(@"str found"); }else{ NSLog(@"str not found"); } 9. //1字符串拆分为数组 NSString *str = @"1,2,3,4,5,6,7"; NSArray *array = [str componentsSeparatedByString:@","]; for(int i= 0;i < [array count];i++){ NSLog(@"array[%d] = %@",i,array[i]); } //2从数组合并元素到字符串NSArray *array = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",nil];NSString *str = [array componentsJoinedByString:@","]; NSLog(@"string:%@",str); 10.比较字符串 Objective-C中,NSString的==操作符比较的是字符串地址,不是字符串内容,如果需要比较内容则需要使用其它的方法。 //1 isEqualToString if ([str1 isEqualToString:str2]) { NSLog(@"str1 is EqualToString str2"); }else{ NSLog(@"str1 is not EqualToString str2"); } //2 strcmp函数char str1[] = "string!"; char str2[] = "string!"; if(strcmp(str1, str2) == 0) { NSLog(@"1"); } //3compare方法(comparer返回三种值) NSString *str1 =@"string!"; NSString *str2 =@"string!"; BOOL isOk = [str1 compare:str2] ==NSOrderedSame; NSLog(@"isOk:%d",isOk); //NSOrderedSame判断两者内容是否相同 //NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,str2大于str1为真) //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,str2小于str1为真) //4不考虑大小写比较字符串NSString *str1 =@"string!"; NSString *str2 =@"string!"; BOOL isOk = [str1 caseInsensitiveCompare:str2] ==NSOrderedSame; NSLog(@"isOk:%d",isOk); BOOL isOk = [str1 compare:str2 options:NSCaseInsensitiveSearch |NSNumericSearch] == NSOrderedSame; NSLog(@"isOk:%d",isOk); //NSCaseInsensitiveSearch:不区分大小写比较 //NSLiteralSearch:进行完全比较,区分大小写 //NSNumericSearch:比较字符串的字符个数,而不是字符值。 11.改变字符串的大小写NSString *str1 =@"string!"; NSString *str2 =@"string!"; NSString *str3 =@"string!"; NSLog(@"str1:%@",[str1 uppercaseString]); NSLog(@"str2:%@",[str2 lowercaseString]); NSLog(@"str3:%@",[str3 capitalizedString]); //uppercaseString返回转换为大写的字符串 //lowercaseString返回转换为小写的字符串 //capitalizedString返回每个单词首字母大写的字符串 12.截取子串NSString *str =@"string!"; NSString *str1 = [str substringToIndex:3]; //截取strNSString *str2 = [str substringFromIndex:3]; //截取ing!NSString *str3 = [str substringWithRange:NSMakeRange(0, 4)]; //截取stri //-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符 //-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符 //-substringWithRange: 按照所给出的位置,长度,任意地从字符串中截取子串 13.遍历 NSString *str = @"abcd ef g h"; NSMutableString *mStr = [str mutableCopy]; NSMutableArray *marr = [[NSMutableArray alloc] init]; for (int i = 0; i < [mStr length]; i++) { NSString *subStr = [mStr substringWithRange:NSMakeRange(i, 1)]; if(![subStr isEqualToString:@" "]){ [marr addObject:subStr]; } } NSInteger lenthStr = [marr count];----------------NSMutableString部分---------------- NSMutableString类可以用来创建可以更改字符的字符串对象。因为该类是NSString类的子类,所以可以使用NSString类的所有方法。 1.NSMutableString生成:NSMutableString *mStr1 =[NSMutableString string];NSMutableString *mStr2 = [NSMutableString stringWithString:@"明天会更好!"];NSMutableString *mStr3 = [[NSMutableString alloc] initWithFormat:@"%@",@"面包会有的!"]; 2.给字符串分配容量 NSMutableString*mStr; mStr =[NSMutableString stringWithCapacity:40]; //初始化容量为40字节,可增加;3.添加元素:NSMutableString *mStrBaby = [NSMutableString string]; [mStrBaby appendString:@"熊"]; [mStrBaby appendFormat:[NSString stringWithFormat:@"猫"]];4.插入内容:NSString *str = @"乖宝宝"; [mStrBaby insertString:str atIndex:2]; //Index:i,从下标为i的元素开始后移,让出空位; [mStrBaby insertString:@"!" atIndex:[mStr length]]; // 在可变字符串的最后插入 5.替换内容: // 用于NSMutableString[mStrBaby replaceCharactersInRange:NSMakeRange(2,3) withString:@"不乖了"]; //在给定的范围内查找并替换, //在第四个参数范围内,查找第一个参数,若有找到用第二个参数替换第一个参数,第三个参数暂时我还不会用;-(NSUInteger)replaceOccurrencesOfString:(NSString*)target withString:(NSString*)replacement options:(NSStringCompareOptions)opts range:(NSRange)searchRange; 6.删除内容:[mStrBaby deleteCharactersInRange:NSMakeRange(2,3)]; //删除指定范围(location=2,length=3)的字符串7.将已有的字符串换成其它的字符串 [mStrBaby setString:@"功夫熊猫!"]; 8.查找(返回字符串范围)NSRange subRange = [mStrBaby rangeOfString:@"猫"]; //查找字符串中是否包含“猫”,返回NSRange类型。 //如果没查找到,则(subRange.location== NSNotFound)为真。 if(subRange.location == NSNotFound){ NSLog(@"String not found "); }else { NSLog(@"string is at index %i, length is %i", subRange.location,subRange.length); } 9.判断字符串内是否还包含别的字符串(前缀,后缀)NSString *str = @"NSStringInformation.txt"; //检查字符串是否以另一个字符串开头或结尾; [str hasPrefix:@"NSString"] == 1 ? NSLog(@"YES") :NSLog(@"NO"); //是否有前缀 NSString; [str hasSuffix:@".txt"] == 1 ? NSLog(@"YES") :NSLog(@"NO"); //是否有后缀 .txt;</span><span style="font-family: Arial; font-size: 18px;"></span>
0 0
- Objective-C基础—字符串对象NSString,NSMutableString
- Objective-C基础——NSString & NSMutableString
- Objective-C: 字符串NSString与NSMutableString
- NSString NSMutableString objective-c中字符串操作
- Objective-C字符串NSString与NSMutableString
- objective-c - 基础篇 - NSString与NSMutableString
- Objective-C----NSString 、 NSMutableString
- Objective—C 关于NSString 和 NSMutableString
- Objective-C语法-字符串NSString和可变字符串NSMutableString
- Objective-C NSString和NSMutableString
- Objective-C学习- 字符串类型 NSString 和 NSMutableString
- 黑马程序员——Objective-C学习之不可变与可变字符串(NSString\NSMutableString)
- Objective-C: Foundation——NSString、NSMutableString、NSNumber、NSValue、NSDate
- Objective-C Copy语法(一)对于Objective-C 提供的类对象NSString/NSMutableString; NSArray/NSMutableArray...
- Objective-C NSString NSMutableString NSArray NSMutableArray
- Objective C - NSString & NSMutableString 的各种使用
- Objective-C NSString NSMutableString NSArray NSMutableArray
- Objective-C------NSString、NSMutableString 基本用法总结
- 用Fusion Log诊断Could not load file or assembly问题
- 直面未来
- 关于Plants versus Zombies游戏中的Pogo stick玩具
- Apache Shiro Web Support学习笔记
- 让我知道生活如何教我做人
- Objective-C基础—字符串对象NSString,NSMutableString
- JS 图片上传预览
- Linux编译安装GCC-4.9.0
- PowerDesigner使用点滴记录-1
- android适配各种分辨率的问题
- python 实现中文分词功能
- android viewpaper嵌套viewpaper,滑动问题解决
- 第十一周 项目3 程序的多文件组织
- Android EventBus实战