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...