iOS字串NSString常用處理方法

2021-08-27 22:05:53 字數 4778 閱讀 6773

ios字串常用處理方法

1.根據起始位置和長度進行字串擷取 - substringwithrange

方法說明:

- (nsstring *)substringwithrange:(nsrange)arange

其中關於 nsrange 的生成方式:

nsrange nsmakerange (

nsuinteger loc,

nsuinteger len

);其中 loc表示左邊開始的位置(第1位為0,從0開始計算),len表示要擷取的長度。

例子:nsstring* value = [@"2015-09-30~20:30:34" substringwithrange:nsmakerange(11,5)];

說明:nsmakerange(11,5)表示字串從左開始經過11個字元,然後從第12個字元開始取5個字元。

value的值為20:30

2.字串擷取到第n位 - substringtoindex

方法說明:

- (nsstring *)substringtoindex:(nsuinteger)anindex

例子:nsstring* value = [@"2015-09-30~20:30:34" substringtoindex:10];

value的值為2015-09-30

3.從n位進行字串擷取

- substringfromindex

方法說明:

- (nsstring *)substringfromindex:(nsuinteger)anindex

例子:nsstring* value = [@"2015-09-30~20:30:34" substringfromindex:10];

value的值為~20:30:34

4.將字串分割為陣列

-componentsseparatedbystring

方法說明:

- (nsarray* _nonnull)componentsseparatedbystring:(nsstring * _nonnull)separator

例子:使用-componentsseparatedbystring:來切分字串為nsarray。 如:

引用nsstring *string = @」one:two:three」;

nsarray *aarray = [string componentsseparatedbystring:@":"];

那麼aarray就是one two three三個字串的陣列。

5.將陣列連線為字串

-componentsjoinedbystring

方法說明:

- (nsstring * _nonnull)componentsjoinedbystring:(nsstring * _nonnull)separator

例子:nsarray* arr = [nsarray arraywithobjects:@"a",@"b",@"c", nil];

nsstring* str = [arr componentsjoinedbystring:@","];

這樣,arr陣列中的各個元素就以」,」分割形成乙個字串 a,b,c。

6.將陣列連線為字串

-utf8string

方法說明:

@property (nullable, readonly) __strong const char *utf8string ns_returns_inner_pointer;   

// convenience to return null-terminated utf8 representation

例子:const char* str = [@"中文china" utf8string];

7.將字串轉為unsigned long格式

strtoul

方法說明:

unsigned long strtoul(const char *nptr,char **endptr,int base )

引數1:字串起始位址

引數2:返回字串有效數字的結束位址,這也是為什麼要用二級指標的原因。

引數3:進製轉換基數。如果base=0,自動對字串裡的數字格式進行分析,並返回基數,其值可取8、16、10。當base=0,自動判斷字串的型別,並按10進製輸出,例如"0xa",就會把字串當做16進製制處理,輸出的為10。

例子:const char* str = [@"0xff" utf8string];

unsigned long value = strtoul(str, null, 0);

此時value值為255

關於c中的進製說明:

16進製制以0x開頭,後面跟數字0~9或字母a~f(小寫也可以)。如:0xff(16進製制數ff,轉為10進製就是255)

8進製以0開頭,後面跟數字0~7。如:011(8進製數11,轉為10進製就是9)

//建立乙個字串常量

nsstring *string100=@"這是乙個常量,";

//建立乙個空字串

nsstring *string101=[[nsstring alloc] init];

nsstring *string102=[nsstring string];

//快速建立字串

nsstring *string103=[[nsstring alloc] initwithstring:@"abc"];

nsstring *string104=[nsstring stringwithstring:@"def"];

//建立乙個格式化的字元

nsstring *string105=[[nsstring alloc] initwithformat:@"%d" ,10];

nsstring *string106=[nsstring stringwithformat:@"%f",11.5];

//字串轉換

nsstring *string107=@"abc";

nsstring *string108=@"abc";

nslog(@"uppercase:%@",[string107 uppercasestring]);//列印出abc

nslog(@"lowercase:%@",[string108 lowercasestring]);//列印出abc

nslog(@"capitalized:%@",[string107 capitalizedstring]);//大寫首字母

//字元比較

nsstring *string109=@"abc";

nsstring *string111=[[nsstring alloc] initwithformat:@"abc"];

if ([string109 isequaltostring:string111]) else

if (string109 == string111) else

//求字串長度

nsstring * string112=[[nsstring alloc] initwithformat:@"abcd"];

nslog(@"字串長度:%hd",[string112 length]);

//拼接字串

nsstring *string10=@"abc";

nsstring *string11=@"def";

nslog(@"string10+string11:%@",[[nsstring alloc] initwithformat: @"%@%@",string10,string11]);

//擷取字串

nsstring *string=[[nsstring alloc] initwithstring:@"abcdefg"];

nsstring *substring1=[string substringtoindex:2];

nsstring *substring2=[string substringfromindex:2];

nsrange range=;

nslog(@"rang:%@",[string substringwithrange:range]);

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

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

//查詢字串

nsstring *searchstring=[[nsstring alloc] initwithstring:@"abcabcuu"];

nsrange aa=[searchstring rangeofstring:@"uu"];

if (aa.location != nsnotfound)

//可變字串 nsmutablestring

nsmutablestring *string200=[[nsmutablestring alloc] initwithformat:@"abc" ];

//插入

[string200 insertstring:@"insert" atindex:0 ];

nslog(@"insertstring:%@",string200);

//替換

[string200 replacecharactersinrange:nsmakerange(1, 2) withstring:@"ddddddd"];

nslog(@"insertstring:%@",string200);

//刪除

[string200 deletecharactersinrange:nsmakerange(1, 2) ];

nslog(@"insertstring:%@",string200);

iOS中的字串NSString

建立乙個字串物件 nsstring str1 hello world nsstring str nsstring alloc initwithstring hello world nsstring str 1 nsstring alloc initwithutf8string hello world...

iOS 字串NSString中去掉空格

問題描述 某些情況下,伺服器返回的字段中含有空格,這空格是伺服器開發人員不小心往資料中多敲了,但客戶端需要保護,所以在客戶端需要把字串中的空格過濾掉。問題分析 1 使用nsstring中的stringbytrimmingcharactersinset nscharacterset whitespac...

ios常用的字串NSString理解

最近在做程式的時候,突然發現對於nsstring的理解還是存在問題的。因此補充一片blog,希望對剛剛進入oc開發並搞不清楚記憶體洩露問題的人一點指引。賦值 nsstring str 123 這段 的含義其實就是附乙個常量給str,該部分由系統自動管理,不需要release釋放,是會autorele...