OC 陣列以及字串拼接與分割

2021-09-30 13:27:24 字數 3433 閱讀 8052

1.oc的陣列成員是任意的物件指標    與c中的鍊錶結構類似(以nil結尾)    一切的陣列操作不能越界

oc的陣列分為不可變陣列nsarray    可變陣列nsmutablearray 

nsarray * array = [[nsarray alloc]initwithobjects:@"one",@"two",@"three", nil];

nslog(@"%@",[array objectatindex:0]);//通過下標獲取陣列成員(下標從0開始)

nslog(@"%ld",[array count]);//獲取陣列有效成員個數 (不包括nil)

for(i = 0; i < [array count]; i++)

nslog(@"%@",array);//(oc)檢視陣列內容(先給array傳送description訊息,然後給每個成員都傳送乙個description訊息)

nsarray * array1 = [[nsarray alloc]initwitharray:array];//建立陣列物件 相當於拷貝

nsarray * arry2 = [nsarray arraywitharray:array];//建立陣列物件 相當於拷貝

nsenumerator * enumer = [array objectenumerator];//正序列舉器

//建立乙個列舉器 把陣列的每個元素的位址一次賦給列舉器,然後建立起某種關聯 (列舉器只能用來讀數組成員)

//列舉時 會和陣列建立某種關聯(修改監視器/迭代器) 限制列舉的同時不能修改元素 只能讀不能寫

id obj;

//第一次迴圈把陣列的第乙個元素賦給obj 第二次迴圈把第二個陣列元素賦給obj

while(obj = [enumer nextobject])

//快速列舉 第一次迴圈把array的第乙個元素賦給ob 第二次迴圈把array的第二個元素賦給ob 直到nil(只能讀不能改)

for(id ob in array)

//逆序輸出陣列(建立逆序列舉器 第一次迴圈把最後乙個元素賦給obj )

nsenumerator * enumer1 = [array reverseobjectenumerator];

while(obj = [enumer1 nextobject])

if([obj iskindofclass:[dog class]])//獲取類的型別 判是否是指定類的物件

if([obj ismemberofclass:[dog class]])

?

2.不可變陣列 ?

-------查詢

nsarray * array = [[nsarray alloc]initwithobjects:@"one",@"two",@"three",@"one", nil];

nsuinteger index = [array indexofobject:@"one123"];//返回第乙個找到的陣列成員對應的下標 找不到返回nsnotfound

index = [array indexofobject:@"one"inrange:nsmakerange(1, 3)];//在指定範圍內查詢

if(index != nsnotfound)

----抽取 組成新的陣列

nsarray * array1 = [array objectsatindexes:[nsindexset indexsetwithindexesinrange:nsmakerange(1, 3)]];

《數字集合》

nsindexset這是個數字集合類

[nsindexset indexsetwithindexesinrange:nsmakerange(1, 3)]產生乙個數字集合

3.可變陣列 

nsmutablearray * array = [[nsmutablearray alloc]initwithobjects:@"one",@"two",@"three",@"four", nil];

[array addobject:@"five"];//在陣列尾部插入元素

[array insertobject:@"six"atindex:5];//在陣列指定下標位置插入元素(不能越界,最大值為length)

[array removeobject:@"six"];//刪除指定元素(陣列**現的所有位置都將被刪除)

[array removeobject:@"two"inrange:nsmakerange(0, 3)];//從指定下標位置開始的指定長度內刪除指定元素

[array removelastobject];//刪除最後乙個元素

[array removeallobjects];//刪除所有元素

[array replaceobjectatindex:3 withobject:@"ios"];//將指定下標位置元素替換為指定的元素

[array exchangeobjectatindex:0 withobjectatindex:3];//將指定下標的兩個元素進行交換

?

4.字串分割與拼接

//@""   空的字串物件  

-------分割

nsstring * ptr = @"i am a man";

nsarray * array = [ptr componentsseparatedbystring:@" "];//將字串整體作為分割條件 返回值為nsarray不可變陣列

nsmutablearray * array1 = [nsmutablearray arraywitharray:array];//若修改,則將nsarray轉化為nsmutablearray

nsarray * array2 = [ptr componentsseparatedbycharactersinset:[nscharacterset charactersetwithcharactersinstring:@", "]];//以字串中的字元作為分割條件進行分割

《字元集合》

nscharacterset 這是個字元集合類

[nscharacterset charactersetwithcharactersinstring:@", "]//把字串轉化為字元集合

-------拼接

nsstring * str = [array componentsjoinedbystring:@" "];

若分割條件出現在開頭或者結尾,則會出現空串@"",如果不需要,則需要轉化成nsmutablestring對空串進行處理

func1: [array1 removeobject:@""]; //找到空串直接刪除

func2: for(id obj in array1)

?

陣列以及字串拼接與分割

1.oc的陣列成員是任意的物件指標 與c中的鍊錶結構類似 以nil結尾 一切的陣列操作不能越界 oc的陣列分為不可變陣列 nsarray 可變陣列 nsmutablearray nsarray array nsarray alloc initwithobjects one two three nil...

OC字串分割,擷取,轉換,拼接

本篇文章主要闡述ios字串分割,擷取,轉換,拼接的一些邏輯,看是否含有分割符,主要介紹了兩種方式,一種沒有任何分割符的資料,乙個帶有分割符的資料。1,進行分割,每兩個一組 2,把資料分割之後,要進行去掉最後一位,給他們交換位置,再進行字串拼接。nsstring arre0 arr objectati...

Python 分割字串與拼接字串

號 實現字串連線 zhrq 95 zhrq95 a 95 b zhrq print b a 注 是反引號,因為其容易看錯,此方法不推薦 zhrq95 print b str a zhrq95 print b repr a repr a 與上面的類似 zhrq95 split 這個函式的作用是將字串根...