NSString与NSMutableString用法

//==========字符串的声明与初始化==========

       //第一种 创建常量字符串 这段代码的含义其实就是附一个常量给str,该部分由系统自动管理,不需要release释放,是会autorelease

          NSString * str1 =@"Hello World";

        NSLog(@"第一种创建常量字符串:%@",str1);

        

        //第二种 创建空字符串,并赋值。

        NSString * str2 =[[NSStringalloc]init];

        str2 = @"Hello World";

        NSLog(@"第二种创建空字符串,给予赋值:%@",str2);

        [str2release];

        

        //第三种使用initWithString方法

        NSString * str3 = [[NSStringalloc]initWithString:@"Hello World"];

        NSLog(@"第三种使用initWithString方法:%@",str3);

        [str3release];

        

       //第四种用标准C创建字符串:(initWithCString

        //encoding字符串的编码方式

        /*

         字符编码

         计算机中的信息包括数据信息和控制信息,数据信息又可分为数值和非数值信息。非数值信息和控制信息包括了字母、各种控制符号、图形符号等,它们都是以二进制编码方式存入计算机并得以处理,这种对字母和符号进行编码的二进制代码称为字符代码(Character Code)。计算机中常用的字符编码有ASCII码(美国标准信息交换码)和EBCDIC码(扩展的BCD交换码)

         */

        char * strTemp ="你好,世界";

        NSString * str4 =[[NSStringalloc]initWithCString:strTemp encoding:NSUTF8StringEncoding];

        NSLog(@"第四种用标准C创建字符串:(initWithCString%@",str4);

        [str4release];

        

        //第五种创建格式化字符串(stringWithFormat://类方法由系统回收内存

        NSString * str5 =[NSStringstringWithFormat:@"%d种创建格式化字符串%@",5,str4];

        NSLog(@"%@",str5);

        

        //第六种字符串转换utf8格式参数char*类型 //类方法由系统回收内存

        NSString * str6 =[NSStringstringWithUTF8String:"你好世界"];

        NSLog(@"%@",str6);

        

       //第七种字符串合并创建新字符串 //类方法由系统回收内存

        int i =1;

        char *c ="geek";

        NSString * temp =@"临时字符串";

        //在字符串strTemp的后面添加int i char * c组成一个新的字符串  此时c应为英文如果为中文将其转化为NSString将发生乱码

        NSString * str7 =[tempstringByAppendingFormat:@"%d %s",i,c];

        NSLog(@"%@",str7);

        

        /*

         UILable文本框赋值时,很容易造成内存泄露,比较正确的方法如下两种

         1.

         NSString * str =[[NSString alloc] initWithFormat:@"%@",@"geek"];

         label.text = str;

         [str release];

         最后在dealloc中再[label release];

         2.

         label.text = [NSString stringWithFormat:@"%@",@"geek"];

         最后在dealloc中再[label release];

         */

        

//==========字符串的方法==========


        //1.判断字符串是否相等[区分大小写](isEqualToString  相同时返回1不同时返回0)

        NSString * str01 =@"This is a string !";

        NSString * str02 =@"This is a String !";

        BOOL result01 =[str01isEqualToString:str02];

        NSLog(@"1.判断字符串是否相等result01:%d",result01);

        

        

        //2.字符串大小进行比较(compare方法  [区分大小写])

        NSString * str03 =@"This is a String !";

        NSString * str04 =@"This is a String !";

        BOOL result02 =[str03compare:str04] ==NSOrderedSame;

        BOOL result03 =[str03compare:str04] ==NSOrderedAscending;//NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,str04大于str03为真) //Ascending 升序

        BOOL result04 =[str03compare:str04] ==NSOrderedDescending;//NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,str04小于str03为真) //降序

        NSLog(@"字符串大小进行比较result02:%d",result02);

        NSLog(@"字符串大小进行比较result03:%d",result03);

        NSLog(@"字符串大小进行比较result04:%d",result04);

        

        

        //3.判断字符串是否以特定字符串开头或结尾

        //hasPrefixe 匹配字符串头

       //hasSuffix 匹配字符串的尾

        NSString * str05 =@"This is a String !";

        if ([str05hasPrefix:@"This"]) {

            NSLog(@"字符串str05This开头");

        }

        if ([str05hasSuffix:@"!"]) {

            NSLog(@"字符串str05!结尾");

        }

        

        //4.不考虑大小写比较字符串

        NSString * str06 =@"This is a String !";

        NSString * str07 =@"this is a String !";

        BOOL result05 = [str06caseInsensitiveCompare:str07] ==NSOrderedSame; //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,str07小于str06为真)  NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,str07大于str06为真)

        NSLog(@"4.不考虑大小写比较字符串result05%d",result05);

        

        BOOL result06 = [str06compare:str07options:NSCaseInsensitiveSearch |NSNumericSearch]==NSOrderedSame;//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。

        NSLog(@"//4.不考虑大小写比较字符串result06%d",result06);

        

        //5.输出大写或者小写字符串 

        NSString * str08 =@"this is a String !";

        NSString * str09 =@"Geek!";

        NSLog(@"%@",[str08uppercaseString]);//大写

        NSLog(@"%@",[str09lowercaseString]);//小写

        NSLog(@"%@",[str08capitalizedString]);//字符串中每个首字母都大写

        

        //6.查找字符串某处是否包含其它字符串 (rangOfString)

        NSString * str10 =@"This is a String";

        NSString * str11 =@"is";

        NSRange range =[str10rangeOfString:str11];

        /*

         1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。

         2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。

         3、有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的。

         NSInteger是基础类型,但是NSNumber是一个类。如果想要存储一个数值,直接用NSInteger是不行的,比如在一个Array里面这样用:

         NSArray *array= [[NSArray alloc]init];

         [array addObject:3];//会编译错误

        这样是会引发编译错误的,因为NSArray里面放的需要是一个类,但‘3’不是。这个时候需要用到NSNumber:

         NSMutableArray *array= [[NSMutableArray alloc]init];

         [array addObject:[NSNumber numberWithInt:3]];

         一下两行代码是会有警告的 因为NSArray 是不可变的.

         NSArray *array1= [[NSArray alloc]init];

         [array1 addObject:[NSNumber numberWithInt:3]];

         Cocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。

         例如以下创建方法:

         + (NSNumber*)numberWithChar: (char)value;

         + (NSNumber*)numberWithInt: (int)value;

         + (NSNumber*)numberWithFloat: (float)value;

         + (NSNumber*)numberWithBool: (BOOL) value;

        将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:

         - (char)charValue;

         - (int)intValue;

         - (float)floatValue;

         - (BOOL)boolValue;

         - (NSString*)stringValue;

         */

        NSUInteger location =range.location

        NSUInteger leight =range.length;

        /*

         NSUIntegeriOS上等价于unsigned int,在Mac OS X 32位上等价于unsigned int 64位上等价于unsigned 

         long。例如你printf的时候,iOS上会写%d,但是Mac OS X上就得写成%ld,否则如果你的编译条件严格的话,会导致

        编译失败。此外,如果需要用OSAtomic系的函数对NSUInteger进行操作,调用函数的版本会有所不同。

         处理器名称 32 位或 64

         Intel Core Solo 32

         Intel Core Duo 32

         Intel Core 2 Duo 64

         Intel Quad-Core Xeon 64

         Dual-Core Intel Xeon 64

         Quad-Core Intel Xeon 64

         Core i3 64  

         Core i5 64  

         Core i7 64

         */

        NSString *str12 =[[NSStringalloc]initWithString:[NSStringstringWithFormat:@"Location:%ld Leight:%ld",location,leight]];

        NSLog(@"%@",str12);

        //rangeOfString前面的参数是要被搜索的字符串,后面的是要搜索的字符

        //NSNotFound表示请求操作的某个内容或者item没有发现,或者不存在

        if ([str10rangeOfString:str11].location!=NSNotFound) {

            NSLog(@"str10中有str11");

        }

        

       //7.从字符串的开头一直截取到指定的位置,但不包括该位置的字符(substringToIndex)

        NSString * str13 =@"This is a String";

        NSString * str14 =[str13substringToIndex:3];

        NSLog(@"7.从字符串的开头一直截取到指定的位置,但不包括该位置的字符 str14%@",str14);

        

        //8.以指定位置开始(包括指定位置的字符),并包括之后的全部字符

        NSString * str15 =@"This is a String";

        NSString * str16 =[str15substringFromIndex:3];

        NSLog(@"8.以指定位置开始(包括指定位置的字符),并包括之后的全部字符 str16%@",str16);

        

        //9.按照所给出的位置,长度,任意地从字符串中截取子串

        NSString * str17 =@"This is a String";

        NSString * str18 =[str17substringWithRange:NSMakeRange(0,4)];

        NSLog(@"9.按照所给出的位置,长度,任意地从字符串中截取子串:%@",str18);

        

       //10.把一个字符串接在另一个字符串的末尾

        NSMutableString * str19 = [[NSMutableStringalloc]initWithString:@"This is a NSMutableString"];

        [str19appendString:@",add"];

        [str19appendFormat:@"%@",[NSStringstringWithFormat:@"%d",2]];

        NSLog(@"10.把一个字符串接在另一个字符串的末尾:%@",str19);

        

        //11.在指定位置插入字符串

        NSMutableString * str20 = [[NSMutableStringalloc]initWithString:@"This is a String"];

        [str20insertString:@"Hi"atIndex:0];

        NSLog(@"11.在指定位置插入字符串:%@",str20);

        

       //12.setString方法

        NSMutableString * str21 = [[NSMutableStringalloc]initWithString:@"This is a String"];

        [str21setString:@"hello"];

        NSLog(@"12.setString方法:%@",str21);

        

        //13.用指定字符串替换字符串中某指定位置、长度的字符串

        NSMutableString * str22 =[[NSMutableStringalloc]initWithString:@"This is a String"];

        [str22replaceCharactersInRange:NSMakeRange(0,4)withString:@"hello"];

        NSLog(@"13.用指定字符串替换字符串中某指定位置、长度的字符串:%@",str22);

        

       //14.扩展路径 将路径中的代字符扩展成用户主目录(~)或指定用户的主目录(~user)

        NSString * str23 =@"~/geek/text.txt";

        NSString * str24 =[str23stringByExpandingTildeInPath];

        NSLog(@"14.扩展路径:%@",str24);

       NSLog(@"str23%@",[str24stringByAbbreviatingWithTildeInPath]);

        

        //15.文件扩展名

        NSString * str25 =@"~/geek/text.text";

        NSLog(@"15.文件扩展名:%@",[str25 pathExtension]);


NSString 常用方法总结

+(id)stringWithContentsOfFile:path encoding:enc err创建一个新字符串并将其设置为 path 指定文件的内容,使用字符编码 enc,在err 上返回错误
+(id)stringWithContentsOfURL:url encoding:enc err创建一个新字符串并将其设置为 url 所指向的内容,使用字符编码 enc,在err 上返回错误
+(id)string创建一个新的空字符串
+(id)stringWithString:nsstring创建一个新字符串,将其内容设置为 nsstring 内容
-(id)initWithString:nsstring将字符串内容设置为 nsstring 内容
-(id)initWithContentsOfFile:path encoding:enc error:err字符串设置为 path 指定文件的内容,使用字符编码 enc,在err 上返回错误
-(id)initWithContentsOfURL:url encoding:enc error:err将字符串设置为 url 所指向的内容,使用字符编码 enc,在err 上返回错误
-(UNSigned int)length返回字符串中字符数目
-(unichar)characterAtindex:i返回索引i 所在UniCode 字符
-(NSString*)substringFromIndex:i返回从索引 i 开始到结尾的子字符串
-(NSString*)substringWithRange:range根据指定范围返回子字符串
-(NSString*)substringToIndex:i返回从字符串开始到 索引 i 的子字符串
-(NSComparator*)caseInsensitiveCompare:nsstring比较两个字符串大小,忽略大小写
-(NSComparator*)compare:nsstring比较两个字符串大小
-(BOOL)hasPrefix:nsstring测试字符串是否以 nsstring 开始
-(BOOL)hasSuffix:nsstring测试字符串是否以 nsstring 结尾
-(BOOL)isEqualToString:nsstring测试两个字符串是否相等
-(NSString*)capitalizedString返回字符串,串中的每个单词的首字母大写,其余字母小写
-(NSString*)lowercaseString返回转换为小写的字符串
-(NSString*)uppercaseString返回转换为大写的字符串
-(const char*)UTF8String返回UTF8编码格式的字符串
-(double)doubleValue返回转换为double 类型的字符串
-(float)floatValue返回转换为 float 类型的字符串
-(NSInteger)integerValue返回转换为 NSInteger 类型的新字符串
-(int)intvalue返回转换为 int 的字符串

 

 

 

NSMutableString 可修改字符串常用方法
+(id)stringWithCapacity:size创建一个字符串,容量为size大小
-(id)initWithCapacity:size初始化一个字符串,容量为size
-(void)setString:nsstring将字符串设置为 nsstring
-(void)appendString:nsstring在字符串末尾追加字符串 nsstring
-(void)deleteCharatersInRange:range删除指定range 中的字符
-(void)insertString:nsstring atIndex:i以索引 i 为起始位置插入 nsstring
-(void)replaceCharatersInRange;range withString:nsstring使用 nsstring 替换 range 指定的字符
-(void)replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range根据选项 opts ,使用指定 range 中的nsstring2 替换所有的 nsstring


下载链接:http://download.csdn.net/detail/u013252054/6794995




                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值