陣列以及字串拼接與分割

2021-06-18 07:31:37 字數 3751 閱讀 5887

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) 

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

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

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 這個函式的作用是將字串根...

c 拼接字串陣列 陣列 字串拼接

題目描述輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。public class solution 交換的值不是拼接後的兩個相鄰字串 if before after for int i 0 i...