Foundation框架中字符串的创建

我们先看一下,c语言中的字符串是如何定义的,例如:

char *s="this is a string"//C语言中的字符串·

在Foundation框架中,字符串的创建有有很多种,我们简单地介绍几种

1,创建常量字符串,例如:

//这种方式创建出来的字符串是不需要释放的

NSString *str1=@"this is a string";


2,创建空字符串,然后给予赋值

//这种方式创建出来的字符串需要释放,因为手动alloc,所以需要手动release

NSString *str2=[[NSStringalloc] init];

str2=@"this is a string";

[str2 release];


3,通过字符串,创建字符串(需要手动释放)

//这种方式创建出来的字符串需要释放,因为手动alloc,所以需要手动release

NSString *str3=[[NSStringalloc] initWithString:@"this is a string"];

[str3 release];


4,通过字符串,创建字符串(不需要手动释放)

//使用对应的静态方法创建字符串,这样就不需要管理内存

NSString *str4=[NSStringstringWithString:@"this is a string"];


5,将c语言中的字符串转换成oc中的字符串(需要手动释放)

//通过c语言的字符串转换成oc的字符串

NSString *str5=[[NSStringalloc] initWithUTF8String:"this is a string"];

[str5 release];


6,将c语言中的字符串转换成oc中的字符串(不需要手动释放)

//使用静态方法创建字符串,不需释放内存

NSString *str6=[NSStringstringWithUTF8String:"this is a string"];


7,通过Format创建字符串(需要手动释放)

//因为alloc,所以,需要手动释放内存

NSString *str7=[[NSStringalloc] initWithFormat:@"My age is %i and height is %.2f",24,1.71f];

[str7 release];


8,通过Format创建字符串(不需要手动释放)

//因为使用静态方法创建字符串,所以不需要手动释放

NSString *str8=[NSStringstringWithFormat:@"My age is %i and height is %.2f",24,1.71f];


9,我们还可以从磁盘上的文件中读取内容来创建字符串

//文件路径

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

//这个方法已经过期,只能解析英文内容,不能解析中文内容

NSString *str=[NSStringstringWithContentsOfFile:path];


10,通过指定字符串编码来创建字符串

NSError *err=nil;

//指定字符串编码为UTF-8   NSUTF8StringEncoding

NSString *str=[NSStringstringWithContentsOfFile:path encoding:NSUTF8StringEncodingerror:&err];

if(err == nil){

    NSLog(@"读取文件成功,%@",str);

} else {

    NSLog(@"%@",err);

}

其中,encoding:NSUTF8StringEncoding 中的 NSUTF8StringEncoding 是指定字符串的编码格式

error:&err 中将NSError中的指针地址传入,这样,如果解析不正确,那么这个err中将会包含错误信息


11,可以通过指定磁盘上的URL来读取磁盘上某个文件的内容来创建字符串

NSURL *url=[NSURLURLWithString:@"file:///Users/mac/Desktop/test.txt"];

NSString *str2=[NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:nil];

NSLog(@"%@",str2);


12,通过指定网络路径,获取网络上的内容来创建字符串。

NSURL *url3=[NSURLURLWithString:@"http://www.baidu.com"];

NSString *str3=[NSStringstringWithContentsOfURL:url3 encoding:NSUTF8StringEncodingerror:nil];

NSLog(@"%@",str3);


    








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值