無論是什麼程式設計語言對字元串的操作是少不了的,對複雜的字元串的分析和操作我們可以用正規表達式來達到我們的目的。簡單的字元串處理我們可以借助oc中nsstring封裝好的字元串處理方法,不過前提是你得了解每個方法如何使用,以下做了一個簡單的總結,便于以後使用。以下事例是原創代碼,轉載請注明出處。
1.字元串的建立
字元串的建立有多種方法,下面的例子中給了常用的幾種字元串建立方法(還有好多)
2.擷取字元串的長度 -(unsigned int) length
3.字元串的比較 == 比較字元串的指針 isequaltostring 比較字元串的内容傳回值是bool類型
以下來利用字元串的淺拷貝和深拷貝來測試上面的兩個方法
retain:始終是淺複制。引用計數每次加一。傳回對象是否可變與被複制的對象保持一緻。
copy:對于可變對象為深複制,引用計數不改變;對于不可變對象是淺複制, 引用計數每次加一。始終傳回一個不可變對象。
mutablecopy:始終是深複制,引用計數不改變。始終傳回一個可變對象。
代碼如下:
運作結果:
4.字元串的比較函數compare,
nsstring下面的compare函數的傳回值是一個枚舉類型nscomparisonresult; nsorderedascending=-1, nsorderedsame=0,nsordereddescending = 1 ; 對compare進行重載,可以傳入option參數, 1 代表不區分大小寫,2代表區分大小寫,64代表比較字元串的個數而不是字元串的值。
5.字元串的拼接函數 stringbyappendingstring : (nsstring *) astring; 和 stringbyappendingformat : (nsstring *) format ...;
下面是對上面兩個函數的測試:
6.字元串的查找
-(bool) hasprefix : (nsstring *) string: 判斷一個字元串是否是以string開頭;
-(bool) hassuffix : (nsstring *) string: 判斷一個字元串是否是以string結尾;
-(nsrange) rangeofstring:(nsstring *) string; 模式比對字元串,傳回類型是結構體nsrange, 結構體 nsrange裡有兩個值都是整型的,location代表子字元串在
原有字元串中的位置,length代表長度。
運作結果:
7.字元串的截取
-(nsstring *) substringfromindex : (nsuinteger) from 擷取從字元串的開頭到字元串結尾的字元串内容,不包含from位置的字元。
-(nsstring *)substringtoindex : (nsuinterger) to 擷取從字元串開頭到字元串的to位置的字元串内容,包含to位置的字元;
-(nsstring *) substringwithrange:(nsrange) range 根據nsrange這個範圍來擷取字元串;
事例代碼如下:
運作結果如下:
8.字元串中的類型轉換函數
-(double) doublevalue; 把字元串的内容轉換為double類型
-(float) floatvalue; 把相應的字元串轉換為float類型
-(int) intvalue;把相應的字元串轉換為int類型
9.字元串大小寫轉換函數
-(nsstring *)uppercasestring : 将字元全改成大寫的;
-(nsstring *)lowercasestring : 将字元全改成小寫的;
-(nsstring *)capitalizedstring : 将首字母進行大寫;
代碼事例:
運作結果:
10.字元串替換函數
-(nsstring *)stringbyreplacingoccurrencesofstring: (nsstring *) target withstring : (nsstring *) replacement; 把字元串target轉換為replacement
-(nsstring *)stringbyreplacingcharactersinrange : (nsrange) range withstring : (nsstring *) replacement; 把指定範圍内的字元串進行替換;
-(nsarray *) componentsseparatedbystring:(nsstring *) separator:以字元串中的某個字元進行分割,傳回數組對象
測試代碼如下