OC學習 四 不可變字串類和可變字串類

2021-06-23 02:40:00 字數 4199 閱讀 9738

今天系統性的學習了oc中的nsstring(字串)類以及它的子類nsmutablestring(可變字串)類,

下面舉例介紹下裡面的一部分比較常用方法

一 nsstring類的部分方法, nsstring 是不可變字串,所以方法呼叫時並不是對原字串進行修改,

而是先建立乙個原字串的副本,然後對副本內容進行修改

1.建立物件兩種方式:

(1)便利構造器( + 號方法):stringwithformat

nsstring *str1 = [nsstring stringwithformat:@"iphone5"];

nslog(@"str1 :%@", str1);

(2)alloc + 初始化方法:initwithformat

nsstring *str2 = [[nsstring alloc] initwithformat:@"iphone5s"];

nslog(@"str2 :%@", str2);

2.求字串長度:length

nsuinteger length = [str1 length];//引用方法1中的str1

nslog(@"%lu", length);//控制台輸出進行檢驗

3.獲取字串中的某個字元:characteratindex

unichar charac = [str1 characteratindex:5];//引用方法1中的str1

nslog(@"%c", charac);//控制台輸出進行檢驗

4.判斷是否以指定的字串開頭:hasprefix

或者以指定的字串結尾:hassuffix

例如:判斷乙個字串是否以http開頭,是否以.com結束

nsstring *str3 = [[nsstring alloc]initwithformat:@""];

//判斷是否以http開頭

nslog(@"isprefix = %d", isprefix);//控制台輸出進行檢驗(bool型別,非0為真)

//判斷是否以.com結尾

bool issuffix = [str3 hassuffix:@".com"];

nslog(@"issuffix = %d", issuffix);//控制台輸出進行檢驗(bool型別,非0為真)

5.查詢指定字串的範圍:rangeofstring

nsrange range = [str3 rangeofstring:@"www"];//引用方法4中的str3

if (range.length == 0) else

6.字串擷取(獲取子字串)

nsstring *str4 = [nsstring stringwithformat:@"kevinisaman"];

(1)獲取給定下標之後的子串,包含指定下標對應的字元:substringfromindex

nsstring *substring1 = [str4 substringfromindex:11];

nslog(@"substring1: %@", substring1);

(2)獲取給定下標之前的子串(從下標為0開始),但是不包含指定下標對應的字元:substringtoindex

nsstring *substring2 = [str4 substringtoindex:5];

nslog(@"substring2: %@", substring2);

(3)獲取指定範圍內的子串:substringwithrange

nsstring *substring3 = [str4 substringwithrange:nsmakerange(0, 5)];

//nsmakerange:建立乙個nsrange型別的結構體

nslog(@"substring3: %@", substring3);

nsstring *str5 = [nsstring stringwithformat:@"lanou"];

(1)lanou 後拼接 henan

nslog(@"combine1: %@", combine1);

(2)lanou 後拼接 henan9ban

nslog(@"combine2: %@", combine2);

8.替換字串:stringbyreplacingoccurrencesofstring

或者 stringbyreplacingcharactersinrange

nsstring *str6 = [nsstring stringwithformat:@"lanououououisabigcompany"];

(1)將 ou 替換為 uo

nsstring *replace1 = [str6 stringbyreplacingoccurrencesofstring:

@"ou" withstring:@"uo"];

nslog(@"replace1:%@", replace1);//控制台輸出進行檢驗

(2)將第乙個 ou 替換為 uo

nsstring *replace2 = [str6 stringbyreplacingcharactersinrange:

nsmakerange(3, 2) withstring:@"uo"];

nslog(@"replace2:%@", replace2);//控制台輸出進行檢驗

9.字串比較:compare

nscomparisonresult result = [@"lanou" compare:@"oulan"];

nslog(@"%ld", result);//控制台輸出進行檢驗

10.字串和數值型別轉換

(1)@"123", 將字串轉化為整數123.

int value = [@" 123abc" intvalue];

nslog(@"%d", value);//控制台輸出進行檢驗

(2)將數字轉為字串物件

nsstring *str = [nsstring stringwithformat:@"%d", 123];

nslog(@"%@", str);//控制台輸出進行檢驗

11.字串轉換大小寫

(1)將@"lan ou"全部轉為大寫:uppercasestring

nsstring *stra = [@"lan ou" uppercasestring];

nslog(@"%@", stra);

(2)將@"lan ou"全部轉為小寫:lowercasestring

nsstring *strb = [@"lan ou" lowercasestring];

nslog(@"%@", strb);

(3)將@"lan ou"每個單詞的首字母大寫:capitalizedstring

nsstring *strc = [@"lan ou" capitalizedstring];

nslog(@"%@", strc);

二 nsmutablestring 是 nsstring 的子類,所以它繼承了nsstring的全部內容,當然也包括上面

的方法,下面介紹一些它獨有的方法,因為 nsmutablestring 是可變字串,所以方法都是在原字元

串的基礎上進行修改

nsmutablestring *str = [nsmutablestring stringwithformat:@"lanouhenan"];

2.在原字串str基礎上拼接frank

nslog(@"%@", str);//控制台輸出進行檢驗

3.刪除原字串,在原字串基礎上刪除henan.

[str deletecharactersinrange:nsmakerange(5, 5)];

nslog(@"%@", str);//控制台輸出進行檢驗

4.插入字串,在原字串基礎上插入henan

[str insertstring:@"henan" atindex:5];

nslog(@"%@", str);//控制台輸出進行檢驗

5.替換字串,在原字串基礎上將第乙個frank替換成kevin

[str replacecharactersinrange:nsmakerange(10, 5) withstring:@"kevin"];

nslog(@"%@", str);//控制台輸出進行檢驗

OC 不可變字串和可變字串的一些用法

字串 nsstring 不可變字串 1.初始化方法 初始化乙個空的字串 nsstring string nsstring alloc init nsstring string1 asds 字面量 nslog string1 根據字串初始化 nsstring string2 nsstring allo...

字串 可變字串與不可變字串

一 nsstring 是不可變字串,所有它所有產生其他字串方法都是生成乙個新的字串,而不會改變原來字串 第一種 字面量 它是常量字串,儲存常量區 nsstring str abc 第二種是通過 快捷的構造方法 nsstring stringwithformat 第三種方式 初始化方法 nsstrin...

OC基礎使用 四 NSString 不可變字串

nsstring 不可變字串 1.建立 1.1 以常量的方式 nsstring string1 100 1.2 以靜態方法 常用 將c字串轉換為oc字串,並指定編碼集 nsstring string2 nsstring stringwithcstring world encoding nsutf8s...