//创建字符串
NSString *str0 = [[NSString alloc]init];
//将字符串创建在代码区,如果内容一样,将是同一个对象
//str1和str2指向同一个对象
NSString *str1 = @"hello world!";
NSString *str2 = @"hello world!";
NSLog(@"%p,%p",str1,str2);
// 字符串的格式化
// 工厂方法和初始化方法创建的字符串都是在堆里的,就算字符串的内容一样,那也是两个对象
NSString *str4 = @"tarena";
NSString *str3 = [NSString stringWithFormat:@"hello %@",str4];
NSLog(@"%@",str3);
NSString *str5 = [[NSString alloc]initWithFormat:@"hello %@",str4];
NSLog(@"%@",str5);
NSLog(@"%p,%p",str3,str5);
if (str3==str5) {
NSLog(@"两个字符串指向同一个对象");
}
if ([str3 isEqualToString:str5]) {
NSLog(@"两个字符串对象的内容一样");
}
//字符串的截取
NSString *str6 = @"www.tedu.cn";
//从头开始截取字符串,截取到index之前,不包括index
NSString *str7 = [str6 substringToIndex:3];
NSLog(@"str7%@",str7);
//从index开始截取字符串,一直截取到字符串尾部,包括index
NSString *str8 = [str6 substringFromIndex:9];
NSLog(@"%@",str8);
//截取某一部分
//NSRange是表示位置和长度的一个结构体
//NSRange range = {4,4};
//使用函数创建range
NSRange range = NSMakeRange(4, 4);
NSString *str9 = [str6 substringWithRange:range];
NSLog(@"str9%@",str9);
//字符串的拼接
NSString *str10 = @"hello";
//在某个字符串的后面追加
NSString *str11 = [str10 stringByAppendingString:@" world"];
NSLog(@"%@",str11);
//按照某种格式追加
NSString *str13 = @"tarena";
NSString *str12 = [str10 stringByAppendingFormat:@" %@",str13];
NSLog(@"%@",str12);
//替换
NSString *str14 = @"www.tedu.cn";
//用某个字符串替换某部分的字符串
NSString *str15 = [str14 stringByReplacingOccurrencesOfString:@"tedu" withString:@"tarena"];
NSLog(@"%@",str15);
//用某个字符串替换某个范围
NSString *str16 = [str14 stringByReplacingCharactersInRange:NSMakeRange(9, 2) withString:@"com"];
NSLog(@"%@",str16);
//判断开头
if([str14 hasPrefix:@"www"]){
NSLog(@"str14以www开头");
}
//判断结尾
if ([str14 hasSuffix:@"cn"]) {
NSLog(@"str14以cn结尾");
}
//写入字符串到本地
NSString *str17 = @"hello world";
/*
参数1:写入文件的本地路径
参数2:原子性YES,会将文件先写入一个临时文件,然后在拷贝到指定的本地路径,防止在写入文件的时候出错,安全性更高
参数3:编码格式,NSUTF8StringEncoding
参数4:报错error
*/
NSError *error;
[str17 writeToFile:@"/Users/tarena/Desktop/string" atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!error) {
NSLog(@"写入成功");
}else if (error){
NSLog(@"写入失败,%@",[error localizedDescription]);//返回主要的错误信息
}
//从本地文件读取字符串
NSString *str18 = [NSString stringWithContentsOfFile:@"/Users/tarena/Desktop/string" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str18);
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSString *str19 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str19);
//字符串的比较
//如果字符串内容相同,只创建一个对象
NSString *str = @"tarena";
NSString *str20 = [NSString stringWithFormat:@"%@",str];
NSString *str21 = [[NSString alloc]initWithFormat:@"%@",str];
//== 是比较两个字符串指针是否指向同一个对象
NSLog(@"%p,%p",str20,str21);
if (str20 == str21) {
NSLog(@"两个字符串指向同一个对象");
}
//比较两个字符串的内容是否相同isEqualToString
if ([str20 isEqualToString:str21]) {
NSLog(@"两个字符串的内容相同");
}
NSLog(@"==================================");
// NSString *str4 = @"tarena1";
// NSString *str3 = [NSString stringWithFormat:@"hello %@",str4];
// NSLog(@"%@",str3);
//
// NSString *str5 = [[NSString alloc]initWithFormat:@"hello %@",str4];
// NSLog(@"%@",str5);
// NSLog(@"%p,%p",str3,str5);
if (str3==str5) {
NSLog(@"两个字符串指向同一个对象");
}
if ([str3 isEqualToString:str5]) {
NSLog(@"两个字符串对象的内容一样");
}
网友评论