GeekBand OC 8. 字符串處理

NSString 引用類型,用指針形式使用

初始化:1. @“”字面量初始化 2. 初始化器方法 3. 工廠方法

恒定性:不能更改字符串本身

共享機(jī)制:字符串內(nèi)容相同時(shí)兩個(gè)指針會(huì)指向同一個(gè)對(duì)象(為了減少字符串重復(fù)帶來的內(nèi)存浪費(fèi))

偽更改字符串:str1 = [str1 stringByAppendingString: @"Yes !"]; 此時(shí)并未真正更改字符串,而是讓指針str1指向了一個(gè)新的字符串(新的內(nèi)存地址)

判斷相等:

1. 值相等:if( [str1 isEqualToString: str2] )

2. 指針相等:str1==str2

NSMutableString:無恒定性,無共享性,是NSString的子類

初始化:NSMutableString *mustr1 = [NSMutableStringWithString:@"Hello World!"];

直接更改:[mustr1 appendString: @"Very Good!" ];

漏洞:如果定義時(shí)讓NSString的指針指向一個(gè)NSMutableString的指針?biāo)傅淖址?,那么更改NSMutableString的字符串時(shí)會(huì)同時(shí)改變NSString的字符串

NSMutableString*mustr1 = [NSMutableStringstringWithString:@"Hello,World!"];

NSString*str5=mustr1;

[mustr1appendString:@" Very Good!"];

NSString定義時(shí)會(huì)預(yù)先分配一段緩存容量(大于實(shí)際所需),也可以手動(dòng)分配:

NSMutableString*mustr3 =[NSMutableString stringWithCapacity:100];

然后就可以更改NSMutableString

方法:

1. appendString(附加)

[mustr3 appendString:@"Hello Objective"];

2. insertString(插入)

[mustr3 insertString:@"-C" atIndex:mustr3.length];

3. setString(替換)

[mustr3 setString:@"Hi Objective"];

當(dāng)實(shí)際需求大于緩存容量時(shí),緩存容量會(huì)自動(dòng)變?yōu)樵瓉淼?倍,此過程較為復(fù)雜。因此最好預(yù)先估計(jì)并分配緩存容量,盡量不要讓緩存容量自動(dòng)增長(zhǎng)。

字符串基本操作

1. sizeof(str1):占內(nèi)存字節(jié)數(shù)

2. str1.length:字符數(shù)量

3. 遍歷:

for(int i =0; i < [str1 length]; i++)

更多字符串操作詳見源代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容