代码改变世界

OC 字符串及可变字符串NSMutableString NSData 写文件

2015-12-09 22:27  AB小博客  阅读(854)  评论(0)    收藏  举报

 NSString *name = @"xiaoren";

        int age = 20;

  给字符串赋值

        NSString *name1 = [NSString stringWithFormat:@"name=%@ age=%d",name,age  ];

        NSLog(@"%@",name1);

        NSUInteger len = [name1 length];

        NSLog(@"%lu",len);

  //获得第4个索引的字符

char c = [name1 characterAtIndex:4];  

        NSLog(@"%c",c);

        for (int i=0; i<len; i++) {

            NSLog(@"%c",[name1 characterAtIndex:i]);

        }

  NSData 

 NSData *date = [name1 dataUsingEncoding:NSUTF8StringEncoding];  //转换成十六进制的字符

        NSLog(@"%@",date);

        NSString *name3 = [[NSString alloc]initWithData:date encoding:NSUTF8StringEncoding];//将十六进制代码转换成字符串

        NSLog(@"%@",name3);

 

  写文件

        NSString *str = @"Hello World";

        NSString *path = @"/Users/mac/Desktop/test.txt";

       BOOL result = [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; //写入文件

        NSLog(@"result=%d",result);

   读文件

    NSString *newstring  = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

        NSLog(@"%@",newstring);

 截取字符串

 NSLog(@"%@",[name1 substringFromIndex:5]); //截取第五个后前的全部字符

          NSLog(@"%@",[name1 substringToIndex:5]); //截取前五个字符

        NSRange range = NSMakeRange(4, 8);   //范围

          NSLog(@"%@",[name1 substringWithRange:range]);//根据范围截取字符串

//字符转换

        NSString *age2 = @"18";//如果不是int类型的 则为0

        NSString *name2 = @"3.14";

        NSString *name5 = @"false";

  转换成Int 

        int a = [age2 intValue];

        float b = [name2 floatValue];

        NSLog(@"%d",a);

        NSLog(@"%f",b);

        BOOL cc = [name5 boolValue];

        NSLog(@"%d",cc);

 字符串大小写转换

        NSString *str3 = @"hello world";

       NSLog(@"%@",[str3 uppercaseString]);//转换成大写输出 HELLO WORLD

         NSLog(@"%@",[str3 lowercaseString]);//转换成小写输出 hello world

         NSLog(@"%@",[str3 capitalizedString]);//转换成首字母大写输出 Hello World

        

 字符串比较

        NSString *str6 = @"a";

         NSString *str7 = @"b";

        NSComparisonResult r=[str6 compare:str7];

        NSLog(@"%ld",(long)r);          //0表示相等

 

 //可变字符串

        

        //可变字符串 是继承NSString的,NSString中的方法属性在NSMutableString里面都可以使用

        //1.一般用静态方法初始化一个类 这样不用管理内存  就是通过类名称可以直接访问方法 不需要alloc

        //通过类名称直接访问方法 不需要管理内存

        NSMutableString *strr1 = [[NSMutableString alloc]initWithCapacity:5];

        //通过类名称直接访问方法 不需要管理内存

        NSMutableString *mStr2 = [NSMutableString stringWithCapacity:10];

        //直接赋值可变字符串 C方法

        NSMutableString *mStr3 = [NSMutableString stringWithString:@"xiaowang"];

        //2.追加字符串 超过初始化长度会自动添加长度

        [mStr2 appendString:@"xiaoren"];

        [mStr2 appendString:@"20222"];

        NSLog(@"%@",mStr2);

        //3.删除字符

        NSRange len1 = NSMakeRange(2, 4);

        [mStr2 deleteCharactersInRange:len1];

        NSLog(@"%@",mStr2);

        //4.插入字符

        [mStr2 insertString:@"yy" atIndex:4];

        NSLog(@"%@",mStr2);

        //5.字符串替换 全部替换

        [mStr2 setString:@"tihuan"];

         NSLog(@"%@",mStr2);