iphone 字串 nsstring用法

2021-06-01 03:08:48 字數 4098 閱讀 6223

1.4.1   字串

可能最常使用的類就是nsstring。nsstring是不可變的,這意味著一旦建立了它,就不能修改它。如果需要修改乙個nsstring的內容,應該使用nsmutablestring類。然而,直接用新的內容建立乙個新的nsstring,這種做法更為常見。

有很多種方法可以建立乙個nsstring,其中最簡單的可能就是下面這種:

nsstring *

mystring

=@"some string"; 

要建立乙個格式化的字串,應該使用如下的**:

nsstring *

mystring

= [nsstring  

-tringwithformat:@"

object

=  @",someobject]; 

一些最常用的格式指定符:%d用來表示整數,%f表示雙精度浮點數,而%@表示物件(要獲取格式指定符的完整列表,請參考開發者文件中《string programming guide》的"string format specifiers"部分)。

如果你擁有的字串只包含數字,可以使用下面的**來返回數字值:

nsstring *

mystring

= @"12345";  

double 

doublestring

= [mystring  

-loatvalue];  

int 

intstring

=[mystring intvalue]; 

這兩種方法都試圖建立數字值直到遇到字串中的第乙個非數字的字元,例如,對於乙個字串"123abc",intvalue方法將返回123。

可以獲取乙個字串的長度:

int 

stringlength

= [mystring  

-ength]; 

要比較兩個字串,可以使用如下**:

bool 

areequal

= [string1  

-sequaltostring:string2] 

如果兩個字串中的所有字元都完全相同,這將返回true。

要執行一次區分大小寫的比較,可以使用如下**:

bool 

areequal

= ([string1  

-aseinsensitivecompare:string2] ==  

-sorderedsame); 

也可以像下面這樣轉換乙個字串的大小寫:

nsstring *

mystring

= "abcdef"

;  nsstring *

upper

= [mystring  

-ppercasestring];  

nsstring *

lower

= [mystring  

-owercasestring]; 

可以很容易地截去乙個字串中不需要的字元。例如,要從乙個字串中刪除所有的空白,可以使用下面的**:

nsstring *

mystring

= @"one two  

-hree";  

nsstring *

trimmed

=[mystring string  

-ytrimmingcharactersinset:  

-nscharacterset whitespace  

-haracterset]]; 

這段**將會輸出字串"one two three"。

通過乙個已有的字串建立子字串,有如下幾種方法:

例如,通過如下的字串建立乙個內容為"one"的新字串:

nsstring *

numberstring

= @"one two  

-hree"; 

可以使用如下**:

nsstring *

astring

= [numberstring  

-ubstringtoindex:3]; 

可以使用如下**:

nsrange 

range

= nsmakerange

(4,3);  

nsstring *

astring

= [numberstring  

-ubstringwithrange:range]; 

建立內容為"two"的乙個新字串。

最後,可以使用如下**:

nsstring *

astring

= [numberstring  

-ubstringfromindex:8]; 

建立內容為"three"的乙個新字串。

我們也可以建立乙個陣列,它包含這3個字串作為其元素(使用空格字元作為分隔符),使用如下**即可:

nsarray *

arr = [numberstring  

-omponentsseparatedbystring:@""]; 

這將會得到陣列:

要替換字串中的子字串,使用如下**:

nsstring *

astring

= [numberstring  

-tringbyreplacingoccurrencesof  

-tring:@"three" withstring:  

-"four"]; 

將會得到字串:"one two four"。

可以在乙個字串中查詢乙個子字串:

nsrange 

foundrange

= [numberstring  

-angeofstring:@"two"]; 

這段**將返回範圍(表示在位置4找到了乙個長度為3的匹配)。

可以判斷乙個字串是否包含乙個子字串:

bool 

found

= ([numberstring  

-angeofstring:@"two"].location !=  

-snotfound); 

可以組合字串:

nsstring *

string1

= @"one";  

nsstring *

string2

= [string1  

這將會得到字串"one two"。

nsstring也包含眾多的用來處理檔案的函式。我們可以從檔案讀取內容,或者向檔案中寫入內容,以及獲取檔案

路徑和副檔名這樣的資訊。

例如,要把乙個檔案的內容讀入到乙個字串中,使用如下**:

nsstring *

filecontents

= [nsstring  

-tringwithcontentsoffile:  

-"myfile.txt"]; 

我們可以獲取乙個檔案的副檔名:

nsstring *

filename

= @"myfile.txt";  

nsstring *

fileextension

=  -filename pathextension]; 

也可以使用nsstring從乙個url讀取內容或者向其寫入內容。

例如,把乙個url的內容讀入到字串中,可以使用如下**:

nsurl *

url = [nsurl urlwithstring:  

-""];  

nsstring 

pagecontents

= [nsstring  

-tringwithcontentsofurl:url];

IPHONE 字串 處理。

連線字串 1 23nsarray strings string strings componentsjoinedbystring 結果 string1 string2 分割字串 1 2nsstring string string1 string2 string3 string4 string5 ns...

iPhone上讀取ansi字串的例子

iphone的nsstring並不支援ansi的字串 比如咱們常用的gb2312 因此如果要讀取的話,需要轉換為utf 8的 而iphone上自帶了libiconv庫,於是這個轉換變的就比較簡單了 首先在工程的framework部分加入 developer platforms iphoneos.pl...

iPhone中字串的國際化

一 獲取系統所支援的國際化資訊 nsuserdefaults defaults nsuserdefaults standarduserdefaults nsarray languages defaults objectforkey nslog languages 二 對字串進行國際化 1.應用nsl...