Obj-C數組以及字串拼接與分割

來源:互聯網
上載者:User

標籤:des   使用   os   for   io   時間   

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

 

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

OC的數組分為不可變數組 NSArray    可變數組 NSMutableArray

  1. NSArray * array = [[NSArray alloc]initWithObjects:@"one",@"two",@"three", nil]; 
  2.     NSLog(@"%@",[array objectAtIndex:0]);//通過下標擷取數群組成員(下標從0開始) 
  3.     NSLog(@"%ld",[array count]);//擷取數組有效成員個數 (不包括nil) 
  4.     for (i = 0; i < [array count]; i++) {//遍曆數組(C方法) 
  5.          NSLog(@"%@",[array objectAtIndex:i]); 
  6.     } 
  7.     NSLog(@"%@",array);//(OC)查看數組內容(先給array發送description訊息,然後給每個成員都發送一個description訊息) 
  8.     NSArray * array1 = [[NSArray alloc]initWithArray:array];//建立數組對象 相當於拷貝 
  9.     NSArray * arry2 = [NSArray arrayWithArray:array];//建立數組對象 相當於拷貝 
  10.     NSEnumerator * enumer = [array objectEnumerator];//正序列舉程式 
  11.     //建立一個列舉程式 把數組的每個元素的地址一次賦給列舉程式,然後建立起某種關聯 (列舉程式只能用來讀數群組成員) 
  12.     //枚舉時 會和數組建立某種關聯(修改監視器/迭代器) 限制枚舉的同時不能修改元素 只能讀不能寫 
  13.     id obj; 
  14.     //第一次迴圈把數組的第一個元素賦給obj  第二次迴圈把第二個數組元素賦給obj 
  15.     while (obj = [enumer nextObject]) {             //遍曆數組 
  16.          NSLog(@"%@",obj); 
  17.     } 
  18.     //快速枚舉  第一次迴圈把array的第一個元素賦給ob  第二次迴圈把array的第二個元素賦給ob 直到nil(只能讀不能改) 
  19.     for(id ob in array){ 
  20.         NSLog(@"%@",ob);      
  21.     } 
  22.     //逆序輸出數組(建立逆序列舉程式  第一次迴圈把最後一個元素賦給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.不可變數組

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

3.可變數

  1. NSMutableArray * array = [[NSMutableArray alloc]initWithObjects:@"one",@"two",@"three",@"four", nil]; 
  2.     [array addObject:@"five"];//在數組尾部插入元素 
  3.     [array insertObject:@"six" atIndex:5];//在數組指定下標位置插入元素(不能越界,最大值為length)    
  4.     [array removeObject:@"six"];//刪除指定元素(數組中出現的所有位置都將被刪除) 
  5.     [array removeObject:@"two" inRange:NSMakeRange(0, 3)];//從指定下標位置開始的指定長度內刪除指定元素 
  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不可變數組 
  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.     若分割條件出現在開頭或者結尾,則會出現空串@"",如果不需要,則需要轉化成NSMutableString對空串進行處理 
  13.     func1:  [array1 removeObject:@""];     //找到空串直接刪除 
  14.     func2:  for(id obj in array1){ 
  15.                 if([obj length] == 0)           //空串的長度為0 
  16.                 if([obj isEqualToString:@""])   //與空串進行比較(字串是不能進行==比較的,要使用函數)        
  17.             } 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.