#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; }
本文轉自蓬萊仙羽51CTO部落格,原文連結:http://blog.51cto.com/dingxiaowei/1366575,如需轉載請自行聯系原作者