自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Obj-C數(shù)組以及字符串拼接與分割

移動開發(fā) iOS
Obj-C只是增加了一點“特殊語料”的C語言,所以可以用printf()代替NSLog()。但我們建議使用NSLog,因為它添加了特性,例如時間戳,日期戳和自動附加換行符(‘\n’)等。

1.OC的數(shù)組成員是任意的對象指針    與C中的鏈表結構類似(以nil結尾)    一切的數(shù)組操作不能越界

OC的數(shù)組分為不可變數(shù)組 NSArray    可變數(shù)組 NSMutableArray

  1. NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three", nil]; 
  2.     NSLog(@"%@",[array objectAtIndex:0]);//通過下標獲取數(shù)組成員(下標從0開始) 
  3.     NSLog(@"%ld",[array count]);//獲取數(shù)組有效成員個數(shù) (不包括nil) 
  4.     for (i = 0; i < [array count]; i++) {//遍歷數(shù)組(C方法) 
  5.          NSLog(@"%@",[array objectAtIndex:i]); 
  6.     } 
  7.     NSLog(@"%@",array);//(OC)查看數(shù)組內(nèi)容(先給array發(fā)送description消息,然后給每個成員都發(fā)送一個description消息) 
  8.     NSArray * array1 = [[NSArray alloc]initWithArray:array];//創(chuàng)建數(shù)組對象 相當于拷貝 
  9.     NSArray * arry2 = [NSArray arrayWithArray:array];//創(chuàng)建數(shù)組對象 相當于拷貝 
  10.     NSEnumerator * enumer = [array objectEnumerator];//正序枚舉器 
  11.     //創(chuàng)建一個枚舉器 把數(shù)組的每個元素的地址一次賦給枚舉器,然后建立起某種關聯(lián) (枚舉器只能用來讀數(shù)組成員) 
  12.     //枚舉時 會和數(shù)組創(chuàng)建某種關聯(lián)(修改監(jiān)視器/迭代器) 限制枚舉的同時不能修改元素 只能讀不能寫 
  13.     id obj; 
  14.     //***次循環(huán)把數(shù)組的***個元素賦給obj  第二次循環(huán)把第二個數(shù)組元素賦給obj 
  15.     while (obj = [enumer nextObject]) {             //遍歷數(shù)組 
  16.          NSLog(@"%@",obj); 
  17.     } 
  18.     //快速枚舉  ***次循環(huán)把array的***個元素賦給ob  第二次循環(huán)把array的第二個元素賦給ob 直到nil(只能讀不能改) 
  19.     for(id ob in array){ 
  20.         NSLog(@"%@",ob);      
  21.     } 
  22.     //逆序輸出數(shù)組(創(chuàng)建逆序枚舉器  ***次循環(huán)把***一個元素賦給obj ) 
  23.     NSEnumerator * enumer1 = [array reverseObjectEnumerator]; 
  24.     while (obj = [enumer1 nextObject]) { 
  25.          NSLog(@"%@",obj); 
  26.     } 
  27.     if ([obj isKindOfClass:[Dog class]]) //獲取類的類型 判是否是指定類的對象 
  28.         if ([obj isMemberOfClass:[Dog class]]) { 
  29.         } 

2.不可變數(shù)組

  1. -------查找 
  2.       
  3.     NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three",@"one", nil];    
  4.     NSUInteger index = [array indexOfObject:@"one123"];//返回***個找到的數(shù)組成員對應的下標 找不到返回NSNotFound    
  5.     index = [array indexOfObject:@"one" inRange:NSMakeRange(1, 3)];//在指定范圍內(nèi)查找 
  6.         if (index != NSNotFound) { 
  7.              NSLog(@"%ld",index); 
  8.         } 
  9.     ----抽取 組成新的數(shù)組 
  10.     NSArray * array1 = [array objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]]; 
  11.     《數(shù)字集合》 
  12.     NSIndexSet這是個數(shù)字集合類 
  13.     [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)]產(chǎn)生一個數(shù)字集合 

3.可變數(shù)

  1. NSMutableArray * array = [[NSMutableArray alloc]initWithObjects:@"one",@"two",@"three",@"four", nil]; 
  2.     [array addObject:@"five"];//在數(shù)組尾部插入元素 
  3.     [array insertObject:@"six" atIndex:5];//在數(shù)組指定下標位置插入元素(不能越界,***值為length)    
  4.     [array removeObject:@"six"];//刪除指定元素(數(shù)組中出現(xiàn)的所有位置都將被刪除) 
  5.     [array removeObject:@"two" inRange:NSMakeRange(0, 3)];//從指定下標位置開始的指定長度內(nèi)刪除指定元素 
  6.     [array removeLastObject];//刪除***一個元素 
  7.     [array removeAllObjects];//刪除所有元素         
  8.     [array replaceObjectAtIndex:3 withObject:@"ios"];//將指定下標位置元素替換為指定的元素 
  9.     [array exchangeObjectAtIndex:0 withObjectAtIndex:3];//將指定下標的兩個元素進行交換 

4.字符串分割與拼接

  1. //@""   空的字符串對象 
  2.     -------分割 
  3.     NSString * ptr = @"I am a man"
  4.     NSArray * array = [ptr componentsSeparatedByString:@" "];//將字符串整體作為分割條件 返回值為NSArray不可變數(shù)組 
  5.     NSMutableArray * array1 = [NSMutableArray arrayWithArray:array];//若修改,則將NSArray轉化為NSMutableArray 
  6.     NSArray * array2 = [ptr componentsSeparatedByCharactersInSet:[NSCharacterSet                                            characterSetWithCharactersInString:@", "]];//以字符串中的字符作為分割條件進行分割 
  7.     《字符集合》 
  8.     NSCharacterSet 這是個字符集合類 
  9.     [NSCharacterSet characterSetWithCharactersInString:@", "]//把字符串轉化為字符集合 
  10.     -------拼接 
  11.     NSString * str = [array componentsJoinedByString:@" "];   
  12.     若分割條件出現(xiàn)在開頭或者結尾,則會出現(xiàn)空串@"",如果不需要,則需要轉化成NSMutableString對空串進行處理 
  13.     func1:  [array1 removeObject:@""];     //找到空串直接刪除 
  14.     func2:  for(id obj in array1){ 
  15.                 if([obj length] == 0)           //空串的長度為0 
  16.                 if([obj isEqualToString:@""])   //與空串進行比較(字符串是不能進行==比較的,要使用函數(shù))        
  17.             } 

 

責任編輯:閆佳明 來源: oschina
相關推薦

2010-10-09 11:43:10

MYSQL字符串

2009-08-07 14:15:21

C#字符串分割

2013-06-24 15:16:29

Java字符串拼接

2009-11-25 09:13:41

PHP數(shù)組轉字符串PHP字符串轉數(shù)組

2021-05-31 07:57:00

拼接字符串Java

2010-11-26 10:43:48

MySQL分割字符串

2021-03-08 08:23:24

Java字符串截取

2013-04-03 10:22:00

iOS開發(fā)Objective-C

2021-12-24 11:59:47

數(shù)據(jù)結構算法字符串

2010-02-04 10:52:36

C++字符串分割函數(shù)

2024-09-30 11:16:39

C#正則表達式

2019-12-25 15:41:50

JavaScript程序員編程語言

2021-10-31 23:01:50

語言拼接字符串

2021-06-11 18:08:00

Java字符串拼接

2011-07-11 16:00:22

字符串拼接

2022-11-25 07:53:26

bash腳本字符串

2013-03-26 10:08:38

LLVM 4.0語法變LLVM 4.0新特性

2010-11-26 13:27:41

MySQL存儲過程

2024-12-23 07:38:20

2011-07-11 15:36:44

JavaScript
點贊
收藏

51CTO技術棧公眾號