OC本学习笔记Foundation框架NSString与NSMutableString
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                OC本学习笔记Foundation框架NSString与NSMutableString
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            ?
 
一、NSString與NSMutableString
????? ? 相信大家對NSString類都不陌生。它是OC中提供的字符串類。它的對象中的字符串都是不可變的,而它的子類NSMutableString類的對象中的字符串就是可變的。
二、關(guān)于字符串的創(chuàng)建
? ? ? ? 1> OC字符串的創(chuàng)建小橋前面都已經(jīng)用過。最簡單就是以下這個: // OC字符串的創(chuàng)建NSString *str1 = @"葬花 橋";
????? ? 2> 創(chuàng)建的一個字符串中要帶有格式化的拼接字符串。能夠這樣:
NSString *str2 = [[NSString alloc] initWithFormat:@"我的名字叫:%@--%d歲了", @"葬花 橋", 120];? ?3> C字符串與OC字符串的相互轉(zhuǎn)換
 
 
以上的字符串創(chuàng)建方法大部分都有類方法,如:
 
????? ? NSString有個對象方法 writeToFile是把字符串寫入到文件里,
????? ? NSMutableString類是NSString的子類。所以它的字符串對象的創(chuàng)建方法同樣,當(dāng)然它也有自己獨有的方法。這些方法與它的可變字符串相關(guān)。以下小橋創(chuàng)建一個要可變的字符串: // 創(chuàng)建可變字符串NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"小橋正在學(xué)習(xí)OC"];?????? ? 這里的可變字符串不能用 @"" 來直接創(chuàng)建。由于 @""創(chuàng)建的字符串對象是不可變的,也即是NSString類型的。既然是可變字符串,那么str1中能夠添加字符串,如: // 拼接一個字符串到str1后面[str1 appendString:@"今天天氣不好"];調(diào)用append方法在str1字符串的后面加上了一個字符串,那么如今str1中的字符串就為 小橋正在學(xué)習(xí)OC今天天氣不好
能夠拼接一個。當(dāng)然也能夠刪除str1中的某個字符串。如:
? ? ? ?
  
                        
                        
                        一、NSString與NSMutableString
????? ? 相信大家對NSString類都不陌生。它是OC中提供的字符串類。它的對象中的字符串都是不可變的,而它的子類NSMutableString類的對象中的字符串就是可變的。
什么是可變與不可變呢?二者的差別就是在已經(jīng)創(chuàng)建的一個字符串對象中,在程序中能不能更改字符串。比方拼接新的字符串。可變的能夠在原字符串中更改,不可變的不能更改。
二、關(guān)于字符串的創(chuàng)建
? ? ? ? 1> OC字符串的創(chuàng)建小橋前面都已經(jīng)用過。最簡單就是以下這個: // OC字符串的創(chuàng)建NSString *str1 = @"葬花 橋";
????? ? 2> 創(chuàng)建的一個字符串中要帶有格式化的拼接字符串。能夠這樣:
// 格式化一個字符串NSString *str2 = [[NSString alloc] initWithFormat:@"我的名字叫:%@--%d歲了", @"葬花 橋", 120];
NSString *str2 = [[NSString alloc] initWithFormat:@"我的名字叫:%@--%d歲了", @"葬花 橋", 120];? ?3> C字符串與OC字符串的相互轉(zhuǎn)換
// C字符串轉(zhuǎn)換成OC字符串NSString *str3 = [[NSString alloc] initWithUTF8String: "葬花 橋"];// OC字符串轉(zhuǎn)換成C字符串const char *s = [str3 UTF8String]; ?????? ? 4> 以文件內(nèi)容初始化字符串:
// 以文件內(nèi)容來初始化字符串 NSString *str4 = [[NSString alloc] initWithContentsOfFile:@"/Users/souhanaqiao/Desktop/soubanaqiao.txt" encoding:NSUTF8StringEncoding error:nil];
 這一句后,str4中的字符串就是文件soubanaqiao.txt中的內(nèi)容了,能夠看下載圖:
NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/souhanaqiao/Desktop/soubanaqiao.txt"];NSString *str5 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 當(dāng)中NSURL是OC中的資源地址類。它的對象表示的是一個資源的路徑,無論是本地的還是網(wǎng)絡(luò)的,可是本地與網(wǎng)絡(luò)的協(xié)議不同,本地是file,網(wǎng)絡(luò)的有http。有ftp等等。MJ老師說能夠把百度網(wǎng)頁的文本內(nèi)容讀取進來,小橋這里試試:
NSURL *baidu = [[NSURL alloc] initWithString:@"http://www.baidu.com"]; NSString *str6 = [[NSString alloc] initWithContentsOfURL:baidu encoding:NSUTF8StringEncoding error:nil];
以上的字符串創(chuàng)建方法大部分都有類方法,如:
// [NSString stringWithFormat:<#(NSString *), ...#>]
? ??// [NSString stringWithUTF8String:<#(const char *)#>]
? ??// [NSString stringWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>]
?三、寫入字符串到文件????? ? NSString有個對象方法 writeToFile是把字符串寫入到文件里,
NSString *str1 = @"橋";// 將OC字符串寫入到文件里,假設(shè)路徑存在但文件不存在就創(chuàng)建文件[str1 writeToFile:@"/Users/souhanaqiao/Desktop/wang.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];<span style="font-family: Arial;">?</span> ????? ? 這種方法會在路徑中創(chuàng)建一個wang.txt文件并把str1的字符串寫入到文件里,當(dāng)然還能夠用url,
// 將str1字符串寫入到url中NSURL *url = [NSURL URLWithString:@"file:///Users/souhanaqiao/Desktop/wang2.txt"];[str1 writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
 
????? ? NSMutableString類是NSString的子類。所以它的字符串對象的創(chuàng)建方法同樣,當(dāng)然它也有自己獨有的方法。這些方法與它的可變字符串相關(guān)。以下小橋創(chuàng)建一個要可變的字符串: // 創(chuàng)建可變字符串NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"小橋正在學(xué)習(xí)OC"];?????? ? 這里的可變字符串不能用 @"" 來直接創(chuàng)建。由于 @""創(chuàng)建的字符串對象是不可變的,也即是NSString類型的。既然是可變字符串,那么str1中能夠添加字符串,如: // 拼接一個字符串到str1后面[str1 appendString:@"今天天氣不好"];調(diào)用append方法在str1字符串的后面加上了一個字符串,那么如今str1中的字符串就為 小橋正在學(xué)習(xí)OC今天天氣不好
能夠拼接一個。當(dāng)然也能夠刪除str1中的某個字符串。如:
NSRange range = [str1 rangeOfString:@"正在學(xué)習(xí)"]; // 找到 正在學(xué)習(xí) 的范圍 [str1 deleteCharactersInRange:range]; // 刪除正在學(xué)習(xí) 這里的NSRange是一個結(jié)構(gòu)體。里面有兩個成員,一個是下標(biāo)一個是長度。
? ? ? ?
版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。
轉(zhuǎn)載于:https://www.cnblogs.com/mfrbuaa/p/4723839.html
總結(jié)
以上是生活随笔為你收集整理的OC本学习笔记Foundation框架NSString与NSMutableString的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Hive高级用法汇总
- 下一篇: 39 网络相关函数(七)——live55
