不可变字符串NSString和可变字符串NSMutableArray

来源:互联网 发布:听电子书的软件 编辑:程序博客网 时间:2024/04/28 08:12

  1OC字符串的创建

 //当编译器发现一个@""的时候就会自动的生成一个字符串对象,

        //该字符串存放在只读数据段

       NSString * str1 =@"hello world!";

       //用一个现有的字符串str1创建一个新的字符串str2

       NSString * str2 = [[NSStringalloc]initWithString:str1];

       //C字符串来创建一个OC字符串

       NSString * str3 = [[NSStringalloc]initWithUTF8String:"12345"];

        NSString * str4 = [[NSStringalloc]initWithCString:"2345"encoding:NSUTF8StringEncoding]

        //用格式符来创建字符串

       NSString * str5 = [[NSStringalloc]initWithFormat:@"%@%@%d%.2f", str2, str3,123,12.34f];

 

        //读取文本内容来创建字符串

        //第一个参数:文件的路径

       //编码格式

        NSString * str6 = [[NSStringalloc]initWithContentsOfFile:@"/Users/qianfeng/Desktop/笔记本使用注意事项.txt" encoding:NSUTF8StringEncoding error:nil];

               

       //用类方法创建

        //用一个字符串来创建

       NSString * str7 = [NSStringstringWithString:str1];

        //C字符串来创建

       NSString * str8 = [NSStringstringWithUTF8String:"123"];

        //用编码格式来创建

        NSString * str9 = [NSStringstringWithCString:"456"encoding:NSUTF8StringEncoding];

        //用格式符来创建

       NSString * str10 = [NSStringstringWithFormat:@"%@%d", str7,123];

        NSString * str11 = [NSStringstringWithContentsOfFile:@"/Users/qianfeng/Desktop/笔记本使用注意事项.txt" encoding:NSUTF8StringEncoding error:nil];

2、不可变字符串(NSString)的常见操作

 (1)获取字符串长度

NSUInteger i = [str1length];

(2)获取字符

  //获取某个下标的字符

       //参数:下标

       unichar c = [str1characterAtIndex:3];


 (3)判断字符串相等

 //比较两个字符串是否相等,返回值BOOL类型,只有两个值: YES NO

       BOOL b = [str1isEqualToString:str2];

 (4)字符串比较

//        返回值类型是NSComparisonResult是一个枚举值

//        其取值范围有三个:

//        NSOrderedAscending = -1L, 从左向右是上升趋势,所以左边小于右边

//        NSOrderedSame,            相等

//        NSOrderedDescending       从左往右是下降趋势,所以左边小于右边

       NSComparisonResult result = [str1compare:str2];

       if (result ==NSOrderedAscending) {

           NSLog(@"str1 < str2");

        }elseif(result ==NSOrderedDescending){

           NSLog(@"str1 > str2");

        }elseif (result ==NSOrderedSame){

           NSLog(@"str1 == str2");

        }


(5)字符串查找

NSString * str1 = @"abcdefg";

       NSRange range1 = [str1rangeOfString:@"fg"];

//        typedef struct _NSRange {

//            NSUInteger location;

//            NSUInteger length;

//        } NSRange;

        

//        NSRange是一个结构体,有两个成员变量

//        NSUInteger location;开始的位置

//        NSUInteger length;  长度

       NSLog(@"位置:%lu 长度%lu", range1.location, range1.length);

(6)判断前后缀


          //从字符串0下标开始往后查,只要不断篇,都是字符串的前缀

        //判断字符串的前缀

       BOOL b = [str1hasPrefix:@"abcd”]; 

        //判断字符串的后缀

       BOOL b1 = [str1hasSuffix:@"abcdef"];

        

(7)数字字符串转化

NSString * str = @"123”

       NSLog(@"%i", [strintValue]);

       NSLog(@"%f", [strfloatValue]);

       NSLog(@"%f", [strdoubleValue]);

       NSLog(@"%li", [strintegerValue]);

       NSLog(@"%lli", [strlongLongValue]);

       NSLog(@"%i", [strboolValue]);

(8)大小写转换

 NSString * str1 = @"abcd";

       NSString * str2 =@"HELLO WORLD";

        

       //转换成大写

       NSString * str3 = [str1uppercaseString];

       //转换成小写

       NSString * str4 = [str2lowercaseString];

        //将字符串的单词 首字母改为大写

       NSString * str5 = [str2capitalizedString];

           

(9)字符串提取

 NSString * str =@"abcdefghigdasd";

        //从指定位置开始,截取到字符串结束,并且包含指定位置 闭区间

       NSString * str1 = [strsubstringFromIndex:6];  

        //从开始的位置,截取到指定的位置,但是不包含指定的位置 开区间

       NSString * str2 = [strsubstringToIndex:4];

        //从指定的位置开始截取,截取指定的长度包含指定的位置 闭区间

       NSRange range = {4,3};

       NSString * str3 = [strsubstringWithRange:range];

     (10)在字符串后面追加字符串   

//在字符串后面追加字符串

       NSString *string7 = [string6stringByAppendingString:@"1234567"];



3、可变字符(NSMutableArray)串常见操作

(1)增加字符串

 NSMutableString * muStr = [NSMutableStringstringWithFormat:@"12345"];

        //给字符串追加内容

        [muStrappendString:@"67"];

        [muStrappendFormat:@"%d",89];

(2)删除字符串

  NSMutableString * str = [[NSMutableStringalloc]initWithFormat:@"%d",123456];

       NSRange range = {2,2};

        [str deleteCharactersInRange:range];

(3)修改字符串

  NSMutableString * str = [[NSMutableStringalloc]init];

        [strsetString:@"13113313192"];

       NSRange range = {3,4};

        //第一个参数:给定要替换的字符串开始位置和长度

        //第二个参数:给定要替换成的字符串

        [str replaceCharactersInRange:rangewithString:@"****"];

(4)插入字符串

 NSMutableString * str = [[NSMutableStringalloc]init];

        [strsetString:@"1233456"];

        [str insertString:@"***"atIndex:3];

       


0 0
原创粉丝点击