日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

oc常用字符串方法,数组方法,字典方法整理大全

發布時間:2023/12/31 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 oc常用字符串方法,数组方法,字典方法整理大全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.+(void)fun;

類方法沒有隱藏參數self所以 1類方法不能引用實例變量。2類方法不能調用對象的方法。

類名直接調用類方法 [CFLCar func];留下簡單的對外接口

1.NSString 一個字符根據編碼占不同字節

%@ 是不可改變的字符串,每一個字符都不能改。只能查詢。

NSMutableString是NSString的子串,是可變字符串;

(1)[str length] 字符串長度

[str characterAtlndex: i ]返回地 i 個字符;

(2)創建

NSString * p=@“dfsfa”;

[NSString stringWithString:@“%@ %@”,str,str2 ]; 復制

NSString * str5 = [NSString stringWithUTF8String:str2];

NSString * str4 = [NSString stringWithString:str1];

-(id)stringWithString;

-(id)stringWithFormat

-(id)stringWithUTF8String

2.字符串比較

//按字符串內容(逐個相比)比較大小

if(str1&&[str1 compare:str2]==NSOrderedSame){

NSLog(@"equal");

}

else if([str1 compare:str2]==NSOrderedDescending){

NSLog(@"Descending");

}

else {

NSLog(@"Ascending");

}

//比較相等

if([str1 isEqualToString:str2]==YES){

NSLog(@"相等");

}

//判斷子串開頭、結尾

NSString *str6=@"13654125251";

if([str6 hasPrefix:@“136"]==YES){ 

NSLog(@"YES");

}

if ([str6 hasSuffix:@"251"]) {

NSLog(@“yes");

}

3.查找子字符串的位 置和范圍

NSString * str1 = @"床前明月光";

NSRange range = [str1 rangeOfString:@"月"];

if (range.location!=NSNotFound) {

NSLog(@"%lu,%lu",range.location,(unsigned long)range.length);

}

4.子串提取

NSString * str = @"Hello,world";

NSString * str1 = [str substringToIndex:5];

NSString * str2 = [str substringFromIndex:6];

NSString * str3 = [str substringWithRange:NSMakeRange(0, 5)];

NSLog(@"%@ %@ %@",str1,str2,str3);

5.字符串轉其他類型

char name[20] = "Tom";

//c strng to NSString

NSString * str1 = [NSString stringWithFormat:@"%s",name];

NSString* str2 = [NSString stringWithUTF8String:name];

NSLog(@"%@ %@",str1,str2);

//NSString to C string

const char *str3 = [str1 UTF8String];

NSLog(@"%s",str3);

//NSString <==> number

NSString * str4 = @"123";

NSLog(@"%d %g",[str4 intValue],[str4 doubleValue]);

//大小寫zhuanh

NSString * str5 = @"dskdjJKLKLK";

NSString * str6 = [str5 uppercaseString];

NSLog(@"%@ %@",str6,[str5 lowercaseString]);

//字符拼接

NSLog(@"%@",[str5 stringByAppendingFormat:@"%@",str6]);

6.可變字符串

NSMutableString 繼承自 NSString

1.凡是NSString的方法,NSMutableString都能用

2.凡是傳參需要傳入NSString * 傳入NSMutableString *也行

【專有方法】

1.重置字符串內容

[str setString:@"0123456789"];

2.增 append

[str appendString:@"9876543210"];

[str appendFormat:@"%d %c %.2f", 34, 'T', 2.34];

3.插入

[str insertString:@"ABC" atIndex:3];

4.刪 delete

[str deleteCharactersInRange:range];

5.改 replace

[str replaceCharactersInRange:range withString:@“XXXXXXXXXXXXXXX”];(先找到range 用rangeofstring函數著字符串)

6查 rangeOfString:

7.字符串去除兩端內容

NSString * str4 = @"kkd123ld";

//stringByTrimmingCharactersInSet去除字符串兩端指定字符集內的字符

//去掉首尾兩端的空格

NSString* str5 = [str4 stringByTrimmingCharactersInSet:[NSCharacterSet letterCharacterSet]];

NSLog(@"%@
%@",str4,str5);

NSString * str6 = @",md123./";

NSCharacterSet * mySet = [NSCharacterSet characterSetWithCharactersInString:@",md./"];

NSString * str7 = [str6 stringByTrimmingCharactersInSet:mySet];

NSLog(@"%@",str7);

刪除字符串;=剩余元素以;=為分割的對象保存到數組

NSArray *array=[str2 componentsSeparatedByCharactersInSet:

[NSCharacterSet characterSetWithCharactersInString:@"; =“]];

8.將文件已字符串形式讀入

NSString *p=[NSString stringWithContentsOfFile:@"/Users/qianfeng/Desktop/未命名.rtf"

encoding:NSUTF8StringEncoding error:nil];

(路徑、編碼方式、nil)

9.判斷字符串中是否含有 某種類型的 元素

NSString *testString = @"春1mianBU覺曉";

int alength = [testString length];

for (int i = 0; i<alength; i++) {

char commitChar = [testString characterAtIndex:i];

NSString *temp = [testString substringWithRange:NSMakeRange(i,1)];

const char *u8Temp = [temp UTF8String];

if (3==strlen(u8Temp)){

NSLog(@"字符串中含有中文");

}else if((commitChar>64)&&(commitChar<91)){

NSLog(@"字符串中含有大寫英文字母");

}else if((commitChar>96)&&(commitChar<123)){

NSLog(@"字符串中含有小寫英文字母");

}else if((commitChar>47)&&(commitChar<58)){

NSLog(@"字符串中含有數字");

}else{

NSLog(@"字符串中含有非法字符");

}

}

id 是通用 對象 指針
內置類型要放到數組,需要封裝

int a=10;

NSNumber *numA=[NSNumber numberWithInt:a];(封裝對象)numA是對象

int b = [numA intValue];(解封裝)

3.NSArray數組元素類型是id,是對象的地址。可以儲存不同類型的對象

是不可變數組 NSMutableArray是可變數組

1.初始化

NSArray * a=[NSArray arrayWithObjects:@"1",@"2", nil];

NSArray *c=@[@“1”,@"2"]; NSArray *c=@[str1,str2];

2.遍歷

(1)循環

NSInteger len=[c count]; 元素個數

id p = [c objectAtIndex: i ];得到制定下標的數組元素(對象地址)

(2)快速枚舉

只能訪問oc對象集合

for (id p in c) {

NSLog(@“%@“,p); (從頭開始逐一給p直到c為nil。p最后為nil)

注意一個問題。在枚舉期間不能修改集合

(3)枚舉器

NSEnumerator * enumer=[c objectEnumerator];

id p;

while(p = [enumer nextObject]){

NSLog(@“%@”,p);

}

//創建一個逆序枚舉器NSEnumerator * enume2 = [array reverseObjectEnumerator]; while (obj = [enume2 nextObject]) {

NSLog(@"obj = %@",obj); }

(1)(3)可增刪數組元素 (2)速度較快

3.判定數組是否包含某個元素

BOOL is=[a containsObject:@“man”];

if (is){

NSLog(@“YES”);

}

4.得到數組第一個對象,最后一個對象(last)

NSLog(@"%@",[c firstObject]);

5.數組查找

NSLog(@"%lu",[c indexOfObject:@“2"]); 內容比較 返回下標

NSLog(@"%lu",[c indexOfObjectIdenticalTo:@“2"]) 地址查找

6.數組排序 前兩種方法

sortedArrayUsingFunction:中函數必須自己寫

NSArray *sortedArray = [array sortedArrayUsingFunction:compare context:nil];

//先比較姓 在比較名字

-(NSComparisonResult)compareLastName:(student*)stu{

NSComparisonResult result = [self.lastname compare stu.lastname];

if(result==NSOrderedSame){

result=[self.firstname compare:stu.firstname];

}

return result;

}

//輸出用description重寫

-(NSString* )description {

return [NSString stringWithFormat:@“%@%@“,self.lastname,self.firstname];

}

使用selector排序 (排序后產生新數組的不變的數組,原來數組不變,所以要用新的數組接收這個返回值);

sortedArrayUsingSelector 數組元素是foundation類的對象,不需要寫比較方法,調用響應的類的比 較方法就可以

如果數組元素是自定義類的對象,在你的類里必須自己寫一個比較函數

NSArray * array 2= [array sortedArrayUsingSelector:@selector(compare:)];調用compare方法進行排序默認從小到大

NSLog(@"%@",sortedArray);

6.可變數組

NSMutableString *array=[[NSMutableArray alloc] init];

//增 追加

[array addObject:@"Four"];

//插入

[array insertObject:@"Four" atIndex:1];

//刪

[array removeAllObjects];

[array removeLastObject];

//刪除指定索引處元素

[array removeObjectAtIndex:1];

//傳入地址,刪除指定元素,如果傳入的是字符串,刪除所有和字符串相等的元素。

[array removeObject:@"One"];

//改

//用某個對象,替換當前某索引處的元素

[array replaceObjectAtIndex:0 withObject:@"Five"];

//交換兩個元素的位置

[array exchangeObjectAtIndex:0 withObjectAtIndex:2];

/*—————————————數組元素拼接成字符串

把數組元素拼接 成字符

NSString * ptr = [array componentsJoinedByString:@“###"];

刪除字符串;=剩余元素以;=為分割的對象保存到數組

NSArray *array=[str2 componentsSeparatedByCharactersInSet:

[NSCharacterSet characterSetWithCharactersInString:@"; ="]];

NSDictionary 字典

NSMutableDictionary可變字典

字典時無序的,對字典排序,應先生稱數組,對數組排序

字典對象是由 鍵—值對象構成的數據集合;同一字典,鍵必須唯一。 鍵值對是無序的

1.創 建

NSDictionary *dict1=[NSDictionary dictionaryWithObjectsAndKeys:s1,@“o1”,@“k1”,@“o2”,@“k2”

nil];//值 鍵

NSDictionary *dict2=@{@“101":s1,@"102":s2,@"103":s3,@"104":s4};//鍵 值

2.存 取

NSLog(@"%@",[dict2 objectForKey:@“101"]); 得到@“101”所對應的值

NSLog(@"%@", dict2[@“102”]);得到鍵所對應的值

NSArray *key =[dict2 allKeys]; 得到所有的鍵

NSLog(@"%@",key);

NSArray *valuis=[dict2 allValues]; 得到所有的鍵值

NSLog(@“%@",valuis);

3.遍 歷

//根據鍵的數組遍歷值(優先選擇)

for (NSString * key in dict2) {

NSLog(@"%@ %@",key,dict2[key]);

}

//枚舉器

NSEnumerator *keyEnumerator =[dict2 keyEnumerator];

NSEnumerator *key;

while(key=[keyEnumerator nextObject]){

NSLog(@"%@ %@",key ,dict2[key]);

}

4.排 序

NSArray *result= [dict2 keysSortedByValueUsingSelector:@selector(compare:)];

( 根據值的內容重寫compare)

NSLog(@"%@",result);

//對值的內容排序,自定義compare函數

5.可變字典

1.創建

NSMutableDictionary *dict2=[NSMutableDictionary dictionaryWithCapacity:0]//有0個鍵值對的可變字典

NSMutableDictionary *dict =[[NSMutableDictionary alloc]init];

//不能用 NSMutableDictionary *dict=@{@“101":@"tom",@"102":@"jerry"}

2.賦值

[dict2 setDictionary:@{@"101":@"tom",@"102":@"jerry"}];

[dict2 setObject:@"zhabg" forKey:@"103"];// 如果有103這個鍵那就是修改。沒有就初始

總結

以上是生活随笔為你收集整理的oc常用字符串方法,数组方法,字典方法整理大全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。