OC学习笔记之NSString

1、oc的字符串包含两种:oc的字符串对象(经常称为字符串)@“”与 c语言的字符串””
2、我们一般在oc程序使用最多的是oc的字符串对象
3、oc的字符串@“”   C语言的字符串“”
4、在oc程序中能不使用c语言的字符串就不使用c语言的字符串。
       sqlite  数据库   参数就是c语言的字符串 


  
NSString  : 不可变字符串。 字符串的内容一旦创建好就不容许改变
NSMutableString:可变字符串。  字符串的内容允许改变。

 

//创建常量字符串

        NSString *str1 = @"I am a bad man";

        NSString *str_1 = @"I am a bad man";

        NSLog(@"%@,%p",str1,str1);// 字符串存储在内存的常量区   地址一样。两个变量指向同一片区域;

        NSLog(@"%@,%p",str_1,str_1);//

        

        //在字符串添加内容, 地址发生改变。。原来的字符串对象并不改变,只是将新生成的字符串重新赋值给指针变量

        str1 = [str1 stringByAppendingString:@"YES!"];

        NSLog(@"%@,%p",str1,str1);

        

        //通过数字集合创建字符串 unichar 数组 typedef unsigned short unichar;

        unichar data[6]={97,98,99,100,65,66};

        NSString *strset = [NSString stringWithCharacters:data length:6];

        NSLog(@"%@",strset);

        

        //写入到文件中 清空原有文件

        [strset writeToFile:@"/Users/qianfeng/Desktop/资料夹/my read/笔记---NSString/笔记---NSString/File" atomically:YES encoding:NSUTF8StringEncoding error:nil];

        

        

        //通过已有字符串创建新字符串。

        //一般用于将不可变字符串生成一个可变字符串

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

        NSLog(@"%@",str2);

        

        //通过格式说明符进行抽奖

        //arc4random   u_int32_t arc4random(void);

        // 产生一个随机数  NSInteger typedef long NSInteger;

        NSInteger a = arc4random()%10;

        NSString *str_2 =[[NSString alloc]initWithFormat:@"我中了%ld!",a];

        NSLog(@"%@",str_2);

        

        //创建带有格式控制符的字符串

        NSInteger i = 7;

        NSString *str3 = [[NSString alloc]initWithFormat:@"国庆%ld天假!",i ];

        NSLog(@"%@",str3);

        

        

        //c字符串转换为oc字符串

        NSString *str4 = [[NSString alloc]initWithUTF8String:"我是一个C字符串,我的前面没有@符号"];

        NSLog( @"%@",str4);

        

        NSString *str5 = [[NSString alloc]initWithCString:"我也是一个C字符串,我的前面没有@符号" encoding:NSUTF8StringEncoding];

        NSLog(@"%@",str5);

        

        int b=10;

        //通过类方法创建字符串

        NSString *str6 = [NSString stringWithFormat:@"我又中了%d",b];

        NSString *str6_ = [NSString stringWithFormat:@"我又中了%d",b];

        //字符串存储在内存的堆区(地址不一样)

        NSLog(@"%@,%p",str6,str6);

        NSLog(@"%@,%p",str6_,str6_);

        

        

        

        NSString *str7 = [NSString stringWithString:str6];

        NSLog(@"%@",str7);

        NSString *str8 = [NSString stringWithUTF8String:"我是通过类方法创建的C字符串"];

        NSLog(@"%@",str8);

        NSString *str9 = [NSString stringWithCString: "我是通过类方法创建的C字符串" encoding:NSUTF8StringEncoding];

        NSLog(@"%@",str9);

        

        //从文件中读取字符串  // 文件路径 // 编码格式 // nil

        NSString *string = [NSString stringWithContentsOfFile:@"/Users/xiaohu/Desktop/oc/day2/poj.rtf" encoding:NSUTF8StringEncoding error:nil];

        NSLog(@"%@",string);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值