Foundation框架-字符串


1.不可变字符串:NSString
字符串使用方法:
1>直接赋值
NSString *s1 = @"I am jack"; // 常用
2>调用initWithString方法
NSString *s2 = [[NSString alloc]initWithString:@"I am jack"]; //调用对象方法initWithString
3>占位符,拼接方法
    NSString *str = @"jack";
    NSString *s3 = [[NSString alloc] initWithFormat:@"I am %@",str];//占位符,拼接字符串
4>C语言字符串和OC字符串的转换
    //C语言字符串-->OC字符串
    NSString *s4 = [[NSString alloc] initWithUTF8String:"I am jack"]; // 后面是C语言字符串
    NSLog(@"%@",s4); // OC输出自动换行
    //OC字符串-->C语言字符串
    const char *cc = [s4 UTF8String]; // 调用对象方法转换成C语言字符串
    printf("%s\n",cc); // 注意和OC输出的不同
5>读取文件中的字符串
    //encoding:NSUTF8StringEncoding转码方式,遇到中文就用这种转码方式
    NSString *s5 = [[NSString alloc]initWithContentsOfFile:@"/Users/lidengke/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil]; //文件的路径:/Users/lidengke/Desktop/1.txt
    NSLog(@"%@",s5);
6>读取文件中字符串的另一种方法
URL:资源路径
*http:// 网络资源协议头,使用时候需要链接网络
*ftp:// 服务器资源协议头
*file:// 本地资源协议头
    NSURL *url = [[NSURL alloc] initWithString:@"http://www.baidu.com"]; //URL设置为百度网页,读取网页文件
    
    NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    
    NSLog(@"%@",s6);
7>字符串写入文件
atomically:YES如中途写入失败,就不会继续写入
所指的文件路径必须的文件必须已存在
    NSString *str = @"I am jack"; //需要写入的字符串
    
    [str writeToFile:@"/Users/lidengke/Desktop/1.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; // 1.txt已存在,写方法不需要返回值
2.可变的字符串:NSmutableString
    //创建字符串
    NSMutableString *s1 = [[NSMutableString alloc] initWithFormat:@"I am"];
    //拼接字符串,接s1后面
   [s1 appendString:@" jack"];
    //输出
    NSLog(@"%@",s1); //s1的指发生了变化,已被修改
与NSString的stringByAppendingString方法比较:
    //创建字符串
    NSMutableString *s1 = [[NSMutableString alloc] initWithFormat:@"I am"];
    //拼接字符串,接s1后面
   [s1 appendString:@" jack"];
    //输出
    NSLog(@"%@",s1); //s1的指发生了变化,已被修改
    
    // 赋值s2 = I am
    NSString *s2 = [NSString stringWithFormat:@"I am"];
    NSLog(@"%@",s2);
    // s2后面拼接
    NSString *s3 = [s2 stringByAppendingString:@" jack"];
    //输出s3
    NSLog(@"%@",s3);
输出结果:
 s1 = I am jack
 s2 = I am
 s3 = I am jack
可以看出s2并没有发生变化,利用NSString的stringByAppendingString方法会有一个NSString类型的返回值,不是改变该对象的本身的值

 一下是练习过程中所有代码
#import <Foundation/Foundation.h>

int main() {
    
    //NSString :不可变字符串
    //NSmutableString :可变字符串
    
    //NSString *s1 = @"I am jack"; //常用
    
    //NSString *s2 = [[NSString alloc]initWithString:@"I am jack"];
    //NSString *str = @"jack";
    //NSString *s3 = [[NSString alloc] initWithFormat:@"I am %@",str];//占位符,拼接字符串
    //C语言字符串-->OC字符串
    //NSString *s4 = [[NSString alloc] initWithUTF8String:"I am jack"]; // 后面是C语言字符串
    //NSLog(@"%@",s4); // OC输出自动换行
    //OC字符串-->C语言字符串
    //const char *cc = [s4 UTF8String]; // 调用对象方法转换成C语言字符串
    //printf("%s\n",cc); // 注意和OC输出的不同
    
    //NSLog(@"location=%ld,length=%ld",range.location,range.length);
    
    //encoding:NSUTF8StringEncoding转码方式,遇到中文就用这种转码方式
   // NSString *s5 = [[NSString alloc]initWithContentsOfFile:@"/Users/lidengke/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil]; //文件的路径:/Users/lidengke/Desktop/1.txt
    //NSLog(@"%@",s5);
    
    
    //NSURL *url = [[NSURL alloc] initWithString:@"http://www.baidu.com"]; //URL设置为百度网页,读取网页文件
    
    //NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    
    //NSLog(@"%@",s6);
    
    
    //NSString *str = @"I am jack"; //需要写入的字符串
    
    //[str writeToFile:@"/Users/lidengke/Desktop/1.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; // 1.txt已存在,写方法不需要返回值
    
    
    //创建字符串
    NSMutableString *s1 = [[NSMutableString alloc] initWithFormat:@"I am"];
    //拼接字符串,接s1后面
   [s1 appendString:@" jack"];
    //输出
    NSLog(@"s1 = %@",s1); //s1的指发生了变化,已被修改
    
    // 赋值s2 = I am
    NSString *s2 = [NSString stringWithFormat:@"I am"];
    NSLog(@"s2 = %@",s2);
    // s2后面拼接
    NSString *s3 = [s2 stringByAppendingString:@" jack"];
    //输出s3
    NSLog(@"s3 = %@",s3);
    
    return 0;
}
以上是对字所学符串的总结,希望大家多多给指导意见





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值