#import <Foundation/Foundation.h>
void stringCreate(){
//C语言中的字符串
//char * s="hello";
NSString *str=@"this is a NSString";
NSLog(@"%@\n",str);
NSString *str1=[[[NSString alloc] init] autorelease];
str1=@"this is also a string";
NSString *str2=[[[NSString alloc] initWithString:@"this is a string"] autorelease];
//将C语言的字符串转化成OC语言的字符串
NSString * str3=[[[NSString alloc] initWithUTF8String:"this is a C string"] autorelease];
//静态方法不需要我们管理内存
str3=[NSString stringWithString:@"new str"];
NSString *str4=[[[NSString alloc] initWithFormat:@"年龄:%i,身高:%.2f",20,172.2f] autorelease];
//静态方法不需要我们管理内存
str4=[NSString stringWithFormat:@"xin 年龄:%i,身高:%.2f",20,172.2f];
NSLog(@"%@\n,%@\n,%@\n,%@\n",str1,str2,str3,str4);
}
void test(){
//从文件中读取数据
NSString *path=@"/Users/dingxiaowei/Desktop/test.txt";
NSError *error;
//这个方法已经过期,不能读取中文
// NSString *strText=[NSString stringWithContentsOfFile:path];
//指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000
NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error==nil) {
NSLog(@"文件读取成功:%@",strText);
}
else{
NSLog(@"文件读失败:%@",error);
}
// NSString *str5=[NSString stringwith];
}
//通过url的方式来读取文件里面的数据
void test4(){
//通过URL来读取本地硬盘上的文件
NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"];
NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSLog(@"文件是:%@",str);
//读取远程服务器上文件
NSURL *url2=[NSURL URLWithString:@"http://www.baidu.com"];
NSString *str2=[NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];
NSLog(@"百度上的文件是:%@",str2);
}
//测试通过在主函数中调用该方法改变str的值,形参和实参的问题
void test1(NSString **str1){
(*str1)=@"123"; //相当于主函数中str=@"123";
}
void test2(int *p){
*p=9;//相当于主函数中a=9
}
#pragma mark 字符串的导出
void stringExport(NSString *str){
// NSString *str=@"123";
//如果文件不存在他会帮我们自动创建
NSString *path=@"/Users/dingxiaowei/Desktop/test1.txt";
NSError *error;
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if(error){
NSLog(@"写入失败:%@",[error localizeDescription]);
}
else{
NSLog(@"写入文件成功");
}
}
#pragma mark 字符串的取出
void stringImport(){
//从文件中读取数据
NSString *path=@"/Users/dingxiaowei/Desktop/test.txt";
NSError *error;
//这个方法已经过期,不能读取中文
// NSString *strText=[NSString stringWithContentsOfFile:path];
//指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000
NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error==nil) {
NSLog(@"文件读取成功:%@",strText);
}
else{
NSLog(@"文件读失败:%@",error);
}
// //通过URL来读取本地硬盘上的文件
// NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"];
// NSError *error;
// NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
// if (error) {
// NSLog(@"文件读取失败:%@",error);
// }
// else{
// NSLog(@"文件读成功:%@",str);
// }
}
#pragma mark - 字符串的常用方法
void stringTest(){
//字符串大小写转化
NSString * strnantong=@"NanTong";
NSString * strhaian=@"haiAn";
NSLog(@"大写:%@",[strnantong uppercaseString]); //转换大写
NSLog(@"小写:%@",[strhaian lowercaseString]); //转化成小写
NSLog(@"首字母大写:%@",[@"aGE" capitalizedString]);//首字母大写
//字符串比较
BOOL *result=[@"abc" isEqualToString:@"ABC"];
NSLog(@"这两个字符串是否相等:%i",result); //YES:1 NO:0
//判断两个字符串的大小
NSComparisonResult result2=[@"abc" compare:@"Abc"];//直接比较,小写字母ASCII码大于大写的
//NSComparisonResult result2=[@"abc" caseInsensitiveCompare:@"Abc"];//忽略大小写比较
if(result2==NSOrderedSame){
NSLog(@"两边相等");
}
else if(result2==NSOrderedAscending){
NSLog(@"右边>左边");
}
else if (result2==NSOrderedDescending){
NSLog(@"左边>右边");
}
//字符串的搜索
NSString*str1=@"123453456.txt";
NSLog(@"是否以12开头:%i",[str1 hasPrefix:@"12"]); //OC中参数都是以:开始的
NSLog(@"是否是txt结尾:%i",[str1 hasSuffix:@".txt"]);
//判断一个字符串在另一个字符串的位置 如果没有的话 那location就是一个非常大的数字long_max数 length是0
NSRange range=[str1 rangeOfString:@"345"]; //返回值是一个range类型{location,length} //位置和长度
NSLog(@"%@",NSStringFromRange(range)); //打印这个range
NSRange range1=[str1 rangeOfString:@"345" options:NSBackwardsSearch];//从尾部开始搜索字符串 后面再加一个range参数就是指从指定位置开始搜索
NSLog(@"%@",NSStringFromRange(range1));
//字符串的截取
NSString *str2=@"123456789";
NSString *newStr=[str2 substringFromIndex:2];
NSLog(@"新截取的字符串是:%@",newStr);
//从头部开始截取,知道索引结束
newStr=[str2 substringToIndex:3];
NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr);
//截取局部
NSRange range2=NSMakeRange(2, 3);
newStr=[str2 substringWithRange:range2];
NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr);
//切割字符串
NSString *list=@"1|2|3|4|5";
NSArray *array=[list componentsSeparatedByString:@"|"];
NSLog(@"集合中的元素是:%@",array);
NSLog(@"集合中第二个元素是:%@",array[1]);//取出第2个元素
NSString *str3=[array objectAtIndex:2];//另外一种获取第几个对象的方法
NSLog(@"集合中第三个元素是:%@",str3);
}
#pragma mark - 与路径相关的方法
void pathTest(){
//快速创建一个自动释放的数组
NSMutableArray *components=[NSMutableArray array];
[components addObject:@"chenli"];
[components addObject:@"dingxiaowei"];
[components addObject:@"jiangke"];
//将数组中所有的字符串拼接成一个路径
//不管后面对path怎么操作 path始终不变 NSString不可变
NSString *path=[NSString pathWithComponents:components];
NSLog(@"%@",path);
//将路径分解成数组
NSArray *arr=[path pathComponents];
NSLog(@"%@",arr);
//判断是否为绝对路径 //就等于判断路径前面是否由反斜杠 如果有则是,如果没由则不是
NSLog(@"%i",[path isAbsolutePath]);
NSLog(@"找出最后一个路径:%@",[path lastPathComponent]);
NSLog(@"删除最后一节路径:%@",[path stringByDeletingLastPathComponent]);
NSLog(@"在最后添加一节路径:%@",[path stringByAppendingPathComponent:@"abc"]);
}
#pragma mark - 文件拓展名处理
void extension(){
NSString *str=@"test.txt";
NSLog(@"文件的拓展名:%@",[str pathExtension]);
NSLog(@"添加拓展名:%@",[str stringByAppendingPathExtension:@"mp3"]);
NSLog(@"删除拓展名:%@",[str stringByDeletingPathExtension]);
}
#pragma mark - 其他
void other(){
NSString *str=@"1";
int a=[str intValue];
NSLog(@"%i",a);
//计算字符串的字数,不是计算字符数,一个中文占2-3个字符
NSLog(@"字数:%zi",[@"我是小丁abc" length]); //length返回的是无符号整形数
unichar c=[@"abc" characterAtIndex:0]; //unichar返回类型是unsigned short
NSLog(@"第一个字符是:%c",c);
//返回C语言中的字符串
const char * c1=[@"abc" UTF8String]; //const表明定义的变量是一个常量,以后不能对他进行操作
NSLog(@"将OC中字符串转化成C中字符串输出:%s",c1);//打印C语言中的字符串用%s
}
#pragma mark - 主函数
int main(int argc, const char * argv[])
{
@autoreleasepool {
// //形参和实参的问题
// //测试test1
// NSString *str=@"456";
// test1(&str);
// NSLog(@"%@",str);
//
//
// //测试test2
// int a=10;
// test2(&a);
// NSLog(@"a=%i",a);
//
// //通过path来读取文件
// test();
// //通过URL来读取
// test4();
//写入文件
stringExport(@"234ding小未");
//取出文件
stringImport();
//测试字符串常用方法
stringTest();
//路径测试
pathTest();
//文件拓展名
extension();
//其他字符串处理
other();
}
return 0;
}#import <Foundation/Foundation.h>
void stringCreate(){
//C语言中的字符串
//char * s="hello";
NSString *str=@"this is a NSString";
NSLog(@"%@\n",str);
NSString *str1=[[[NSString alloc] init] autorelease];
str1=@"this is also a string";
NSString *str2=[[[NSString alloc] initWithString:@"this is a string"] autorelease];
//将C语言的字符串转化成OC语言的字符串
NSString * str3=[[[NSString alloc] initWithUTF8String:"this is a C string"] autorelease];
//静态方法不需要我们管理内存
str3=[NSString stringWithString:@"new str"];
NSString *str4=[[[NSString alloc] initWithFormat:@"年龄:%i,身高:%.2f",20,172.2f] autorelease];
//静态方法不需要我们管理内存
str4=[NSString stringWithFormat:@"xin 年龄:%i,身高:%.2f",20,172.2f];
NSLog(@"%@\n,%@\n,%@\n,%@\n",str1,str2,str3,str4);
}
void test(){
//从文件中读取数据
NSString *path=@"/Users/dingxiaowei/Desktop/test.txt";
NSError *error;
//这个方法已经过期,不能读取中文
// NSString *strText=[NSString stringWithContentsOfFile:path];
//指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000
NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error==nil) {
NSLog(@"文件读取成功:%@",strText);
}
else{
NSLog(@"文件读失败:%@",error);
}
// NSString *str5=[NSString stringwith];
}
//通过url的方式来读取文件里面的数据
void test4(){
//通过URL来读取本地硬盘上的文件
NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"];
NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSLog(@"文件是:%@",str);
//读取远程服务器上文件
NSURL *url2=[NSURL URLWithString:@"http://www.baidu.com"];
NSString *str2=[NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];
NSLog(@"百度上的文件是:%@",str2);
}
//测试通过在主函数中调用该方法改变str的值,形参和实参的问题
void test1(NSString **str1){
(*str1)=@"123"; //相当于主函数中str=@"123";
}
void test2(int *p){
*p=9;//相当于主函数中a=9
}
#pragma mark 字符串的导出
void stringExport(NSString *str){
// NSString *str=@"123";
//如果文件不存在他会帮我们自动创建
NSString *path=@"/Users/dingxiaowei/Desktop/test1.txt";
NSError *error;
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if(error){
NSLog(@"写入失败:%@",[error localizeDescription]);
}
else{
NSLog(@"写入文件成功");
}
}
#pragma mark 字符串的取出
void stringImport(){
//从文件中读取数据
NSString *path=@"/Users/dingxiaowei/Desktop/test.txt";
NSError *error;
//这个方法已经过期,不能读取中文
// NSString *strText=[NSString stringWithContentsOfFile:path];
//指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000
NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
if (error==nil) {
NSLog(@"文件读取成功:%@",strText);
}
else{
NSLog(@"文件读失败:%@",error);
}
// //通过URL来读取本地硬盘上的文件
// NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"];
// NSError *error;
// NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
// if (error) {
// NSLog(@"文件读取失败:%@",error);
// }
// else{
// NSLog(@"文件读成功:%@",str);
// }
}
#pragma mark - 字符串的常用方法
void stringTest(){
//字符串大小写转化
NSString * strnantong=@"NanTong";
NSString * strhaian=@"haiAn";
NSLog(@"大写:%@",[strnantong uppercaseString]); //转换大写
NSLog(@"小写:%@",[strhaian lowercaseString]); //转化成小写
NSLog(@"首字母大写:%@",[@"aGE" capitalizedString]);//首字母大写
//字符串比较
BOOL *result=[@"abc" isEqualToString:@"ABC"];
NSLog(@"这两个字符串是否相等:%i",result); //YES:1 NO:0
//判断两个字符串的大小
NSComparisonResult result2=[@"abc" compare:@"Abc"];//直接比较,小写字母ASCII码大于大写的
//NSComparisonResult result2=[@"abc" caseInsensitiveCompare:@"Abc"];//忽略大小写比较
if(result2==NSOrderedSame){
NSLog(@"两边相等");
}
else if(result2==NSOrderedAscending){
NSLog(@"右边>左边");
}
else if (result2==NSOrderedDescending){
NSLog(@"左边>右边");
}
//字符串的搜索
NSString*str1=@"123453456.txt";
NSLog(@"是否以12开头:%i",[str1 hasPrefix:@"12"]); //OC中参数都是以:开始的
NSLog(@"是否是txt结尾:%i",[str1 hasSuffix:@".txt"]);
//判断一个字符串在另一个字符串的位置 如果没有的话 那location就是一个非常大的数字long_max数 length是0
NSRange range=[str1 rangeOfString:@"345"]; //返回值是一个range类型{location,length} //位置和长度
NSLog(@"%@",NSStringFromRange(range)); //打印这个range
NSRange range1=[str1 rangeOfString:@"345" options:NSBackwardsSearch];//从尾部开始搜索字符串 后面再加一个range参数就是指从指定位置开始搜索
NSLog(@"%@",NSStringFromRange(range1));
//字符串的截取
NSString *str2=@"123456789";
NSString *newStr=[str2 substringFromIndex:2];
NSLog(@"新截取的字符串是:%@",newStr);
//从头部开始截取,知道索引结束
newStr=[str2 substringToIndex:3];
NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr);
//截取局部
NSRange range2=NSMakeRange(2, 3);
newStr=[str2 substringWithRange:range2];
NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr);
//切割字符串
NSString *list=@"1|2|3|4|5";
NSArray *array=[list componentsSeparatedByString:@"|"];
NSLog(@"集合中的元素是:%@",array);
NSLog(@"集合中第二个元素是:%@",array[1]);//取出第2个元素
NSString *str3=[array objectAtIndex:2];//另外一种获取第几个对象的方法
NSLog(@"集合中第三个元素是:%@",str3);
}
#pragma mark - 与路径相关的方法
void pathTest(){
//快速创建一个自动释放的数组
NSMutableArray *components=[NSMutableArray array];
[components addObject:@"chenli"];
[components addObject:@"dingxiaowei"];
[components addObject:@"jiangke"];
//将数组中所有的字符串拼接成一个路径
//不管后面对path怎么操作 path始终不变 NSString不可变
NSString *path=[NSString pathWithComponents:components];
NSLog(@"%@",path);
//将路径分解成数组
NSArray *arr=[path pathComponents];
NSLog(@"%@",arr);
//判断是否为绝对路径 //就等于判断路径前面是否由反斜杠 如果有则是,如果没由则不是
NSLog(@"%i",[path isAbsolutePath]);
NSLog(@"找出最后一个路径:%@",[path lastPathComponent]);
NSLog(@"删除最后一节路径:%@",[path stringByDeletingLastPathComponent]);
NSLog(@"在最后添加一节路径:%@",[path stringByAppendingPathComponent:@"abc"]);
}
#pragma mark - 文件拓展名处理
void extension(){
NSString *str=@"test.txt";
NSLog(@"文件的拓展名:%@",[str pathExtension]);
NSLog(@"添加拓展名:%@",[str stringByAppendingPathExtension:@"mp3"]);
NSLog(@"删除拓展名:%@",[str stringByDeletingPathExtension]);
}
#pragma mark - 其他
void other(){
NSString *str=@"1";
int a=[str intValue];
NSLog(@"%i",a);
//计算字符串的字数,不是计算字符数,一个中文占2-3个字符
NSLog(@"字数:%zi",[@"我是小丁abc" length]); //length返回的是无符号整形数
unichar c=[@"abc" characterAtIndex:0]; //unichar返回类型是unsigned short
NSLog(@"第一个字符是:%c",c);
//返回C语言中的字符串
const char * c1=[@"abc" UTF8String]; //const表明定义的变量是一个常量,以后不能对他进行操作
NSLog(@"将OC中字符串转化成C中字符串输出:%s",c1);//打印C语言中的字符串用%s
}
#pragma mark - 主函数
int main(int argc, const char * argv[])
{
@autoreleasepool {
// //形参和实参的问题
// //测试test1
// NSString *str=@"456";
// test1(&str);
// NSLog(@"%@",str);
//
//
// //测试test2
// int a=10;
// test2(&a);
// NSLog(@"a=%i",a);
//
// //通过path来读取文件
// test();
// //通过URL来读取
// test4();
//写入文件
stringExport(@"234ding小未");
//取出文件
stringImport();
//测试字符串常用方法
stringTest();
//路径测试
pathTest();
//文件拓展名
extension();
//其他字符串处理
other();
}
return 0;
}