IOS 復(fù)習(xí)鞏固之Foundation框架

NSRange : 表示范圍作用的結(jié)構(gòu)體,3種方式創(chuàng)建

// 方式一

NSRange range;

location是一個(gè)以0開始的指數(shù)(index) ,,length(長度),他們都是NSUInteger類型

range.location = 17;

range.length = 4;

// 方式二

NSRange range = {17, 4};

// 方式三

// 推薦

NSRange range = NSRangeMake(17, 4);

使用例子:

下面這個(gè)例子,將輸出lonely

NSString*homebrew = @"the road is lonely its crowd for it is not loved";

// Starting at position 12, get 6 characters

NSRange range=NSMakeRange (12, 6);

// This would also work:

// NSRange range = {12, 6};

NSLog (@"Beer shortname: %@", [homebrew substringWithRange:range]);

//反向搜索

NSRange range = [homebrew rangeOfString:@"ia" options:NSBackwardsSearch];

搜索字符串:

NSString*homebrew = @"the road is lonely its crowd for it is not loved";

NSRange range = [homebrew rangeOfString:@"lonely"];

// Did we find the string "lonely" ? 是否有l(wèi)onely

if (range.length > 0)

NSLog(@"Range is: %@", NSStringFromRange(range));

例如獲取一個(gè)數(shù)組的一個(gè)子集:

NSRange range =NSMakeRange(0,5);

NSArray*subArray = [self.states subarrayWithRange:range];

這樣就獲得了這個(gè)數(shù)組中0開始的5個(gè)元素的子集。


NSNumber:專門用來裝基礎(chǔ)類型的對(duì)象,把整型、單精度、雙精度、字符型等基礎(chǔ)類型存儲(chǔ)為對(duì)象

//封裝基本數(shù)據(jù)類型

int intValue?=100;

float floatValue?=3.14;

BOOL boolValue?=YES;

char charValue='1'

NSNumber *intNumber?=?[[NSNumberalloc]initWithInt:intValue];

NSLog(@"intNumber?is?%@",?intNumber);

NSNumber *floatNumber?=?[NSNumbernumberWithFloat:floatValue];

NSLog(@"floatNumber?is?%@",?floatNumber);

NSNumber *boolNumber?=?[NSNumbernumberWithBool:boolValue];

NSLog(@"boolNumber?is?%@",?boolNumber);

NSNumber *charNumber = [NSNumbernumberWithBool:charValue];

NSLog(@"charNumber is %@", charNumber);

//包裝之后就可以放到容器中

NSArray*arr?=?@[intNumber,?floatNumber,boolNumber,charNumber];

NSLog(@"arr?is?%@",?arr);

//還原成基本數(shù)據(jù)類型

floatvalue?=?[floatNumber floatValue];

intvalue2=?[intNumber intValue];

NSLog(@"value?is?%.2f",value);

NSLog(@"value2?is?%d",value2);

//快速創(chuàng)建的方法

NSNumber *intNum?=@80;//---->??NSNumber?*intNumber?=?[[NSNumber?alloc]?initWithInt:80];

NSNumber *floatNum?=@3.14;//?---->[NSNumber?numberWithFloat:3.14];

NSNumber *boolNum?=@YES;//?--->?[NSNumber?numberWithBool:YES];

NSNumber *charNum?=?@'a';//?--->?[NSNumber?numberWithChar:'a'];

//運(yùn)算

NSNumber*number?=?@(1+2);

//直接在數(shù)組中寫

NSArray*arr1=?@[@"string",@12,?intNum,?floatNum,?boolNum,?charNum,number];

NSLog(@"arr1?is?%@",?arr1);

//判斷兩個(gè)NSNumber是否相等

//這種比較也是可以跨不同對(duì)象的,比如:比較intNumber和floatNumber

BOOL ret = [intNumber isEqualToNumber:intNumber2];

//比較兩個(gè)整型的NSNumber的大小

if ([intNumber compare:intNumber] == NSOrderedAscending) {

NSLog(@"<");

}else if([intNumber compare:intNumber2] == NSOrderedSame){

NSLog(@"=");

}else if([intNumber compare:intNumber2] == NSOrderedDescending){

NSLog(@">");

}


字典NSDictionary類、NSMutableDictionary類:關(guān)鍵字和其定義的集合,也被成為散列表或關(guān)聯(lián)數(shù)組,使用的是鍵查詢的優(yōu)化存儲(chǔ)方式

//初始化一組數(shù)組,存入字典中作為關(guān)鍵字? NSDictionary

NSNumber *num = [NSNumber numberWithInt:100];?

NSDictionary *dic1 = [NSDictionary dictionaryWithObject:num forKey:@"key1"];? ?

//優(yōu)化語法

//1.---------------------字典的創(chuàng)建

NSArray*array1=?[NSArrayarrayWithObjects:@"zhangsan",@"zhangfei",nilnil];

NSArray*array2=?[NSArrayarrayWithObjects:@"lisi",@"liping",nilnil];

//第一個(gè)元素:key:@"zhang"?value:array1

//第二個(gè)元素:key:@"li"??value:array2

NSDictionary*dict?=?[[NSDictionaryalloc]initWithObjectsAndKeys:array1,@"zhang",array2,@"li",nilnil];

NSLog(@"%@",dict);

//存放一個(gè)元素

NSDictionary*dict2=?[NSDictionarydictionaryWithObject:array1forKey:@"zhang"];

//2.---------------------獲取所有的key

NSArray*allKeys?=?[dictallKeys];

//3.---------------------獲取所有的value

//可能為二維數(shù)組

NSArray*allValues?=?[dictallValues];

//4.---------------------通過key獲取value

NSArray*values?=?[dictobjectForKey:@"zhang"];

//5.---------------------優(yōu)化的語法

NSDictionary*dict3=?@{@"zhangsan":array1,@"lisi":array2};

NSLog(@"%@",dict3);

NSArray*array4=?dict3[@"zhang"];

//初始化多組數(shù)據(jù)?

NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"hello",@"key2",@"world",@"key3",@"csdn",@"key4", nil nil];? ?

注意結(jié)尾是nil nil

//用一個(gè)字典初始化另外一個(gè)字典?

NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];? ?

//打印輸出?

NSLog(@"dic1 :? %@,dic2? :? %@,? dic3? :? %@",dic1,dic2,dic3);

輸出:

dic1 :{? ? key1 = 100;}

dic2? :? {? ? key2 = hello;? ? key3 = world;? ? key4 = csdn;}

dic3? :? {? ? key2 = hello;? ? key3 = world;? ? key4 = csdn;}

獲取字典的值

//獲取長度?

int length = [dic2 count];?

NSLog(@"dic2 length = %d",length);? ?

//根據(jù)key獲取key所對(duì)應(yīng)的value?

NSLog(@"key3 value = %@",[dic2 objectForKey:@"key3"]);? ?

//可以獲取所有的keys?

NSArray *allkeys =? [dic3 allKeys];

NSLog(@"NSarray allkey = %@",allkeys);? ?

//可以獲取所有的values?

NSArray *allvalues =? [dic3 allValues];?

NSLog(@"NSarray allvalues = %@",allvalues);

輸出:dic2? length = 3? ?

key3 value = world? ?

NSarray allkey = (? ? ? ? ? key4,? ? ? ? ? key3,? ? ? ? ? key2? ? )? ?

NSarray allvalues = (? ? ? ? ? csdn,? ? ? ? ? world,? ? ? ? ? hello? ? )

可變字典? NSMutableDictionary

NSMutableDictionary *dic4 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"one",@"key4",@"two",@"key5", nil nil];? ? //定義成空字典?

NSMutableDictionary *dic5 = [NSMutableDictionary dictionary];? ? ? ? ? ?

//將字典dic2整體添加到dic4鐘?

[dic4 addEntriesFromDictionary:dic2];? ?

//添加一個(gè)元素? 存在即替換內(nèi)容

NSDictionary*dict2= [NSDictionarydictionaryWithObject:array1 forKey:@"zhang"];

[dic4 setValue:@"three" forKey:@"key6"];

//3.-------------刪除元素

[md1removeObjectForKey:@"zhang"];//以key刪除

[md1removeAllObjects];//刪除所有元素

[md1removeObjectsForKeys:array1];//以value刪除

//根據(jù)key獲取value?

NSLog(@"key6 =? %@",[dic4 objectForKey:@"key6"]);

//刪除指定key值的字典元素

[dic4 removeObjectForKey:@"key6"];

//將一個(gè)字典加到可變字典里面

dic4=[[NSMutableDictionary alloc]initWithCapacity:10];

[dic4 addObjectsFromArray:_arr];

字典的遍歷

1)一般遍歷

NSArray *keys4 = [dic4 allKeys];? ? ?? //獲取所有的key? allValue 獲取所有的value ? ?

for(int i=0;i<[dic4 count];i++)? {? ? ? ? ? ? ? ?

NSLog(@"dic4 key = %@,value=%@",[keys4 objectAtIndex:i],[dic4 objectForKey:[keys4 objectAtIndex:i]]);?

}

輸出:dic4 key = key3,value=world? ?

dic4 key = key6,value=three??

dic4 key = key4,value=csdn??

dic4 key = key2,value=hello??

dic4 key = key5,value=two

2)高效的for遍歷

for (NSString *key in dic4)? {? ? ?

NSLog(@"dic4 key = %@ ,value = %@",key,[dic4 objectForKey:key]);

}?

輸出:dic4 key = key3,value=world? ?

dic4 key = key6,value=three??

dic4 key = key4,value=csdn??

dic4 key = key2,value=hello? ?

dic4 key = key5,value=two

3)枚舉遍歷

NSEnumerator *enum1 = [dic4 keyEnumerator];?

//獲取key,如果不為空,則進(jìn)行偏移

id key = [enum1 nextObject];? while (key)? {? ? ? ? ? ? ??

NSLog(@"key = %@ ,value = %@ ",key,[dic4 objectForKey:key]);? ? ? ? ? ? ??

? ? key = [enum1 nextObject];? }?

輸出:dic4 key = key3,value=world??

dic4 key = key6,value=three??

dic4 key = key4,value=csdn??

? dic4 key = key5,value=two

擴(kuò)展 單例的使用

.h

#import@interface ShowStart : NSObject

+(ShowStart *)showStart;

@property(strong,nonatomic) NSMutableDictionary *dic;

@end

.m

#import "ShowStart.h"

@implementation ShowStart

static ShowStart *usertelphonenum=nil;

+(ShowStart *)showStart{

if (usertelphonenum==nil) {

usertelphonenum=[[ShowStart alloc]init];

//一定要有大小

usertelphonenum.dic=[[NSMutableDictionary alloc]initWithCapacity:10];

}return usertelphonenum;}


數(shù)組 可變數(shù)組 NSArray NSMutableArray

//1.---------------------數(shù)組的創(chuàng)建

NSString*s1=@"zhangsan";

NSString*s2=@"lisi";

NSString*s3=@"wangwu";

//最后的nil相當(dāng)于結(jié)束的標(biāo)記

NSArray*array1=?[[NSArrayalloc]initWithObjects:s1,s2,s3,nilnil];

//打印的時(shí)候會(huì)調(diào)用description方法

//相當(dāng)于:array1.description

NSLog(@"%@",array1);

//使用類方法創(chuàng)建

array1=?[NSArrayarrayWithObjects:s1,s2,s3,nilnil];

//創(chuàng)建一個(gè)數(shù)組,將源數(shù)組中的數(shù)據(jù)拿出來放進(jìn)去

NSArray*array2=?[NSArrayarrayWithArray:array1];

//2.----------------------objectAtIndex

//訪問數(shù)組中的數(shù)據(jù),數(shù)組中存放的是對(duì)象的指針

NSString*str1=?[array1objectAtIndex:0];

//3.----------------------count

//獲取數(shù)組元素中的個(gè)數(shù)

NSUInteger?count?=?[array1count];//返回的是一個(gè)無符號(hào)數(shù)值

//4.----------------------containsObject

//判斷數(shù)組中是否包含某一個(gè)對(duì)象,判斷的是指針對(duì)象值,不是對(duì)象中的值

BOOLisContains?=?[array1containsObject:@"zhangsan"];

//5.----------------------indexOfObject

//返回一個(gè)對(duì)象在數(shù)組中的下標(biāo)值

NSUInteger?index?=?[array1indexOfObject:@"zhangsan"];

if(index?==?NSNotFound){

//沒有找到

}else{

//找到了

}

//6.----------------------componentsJoinedByString

//數(shù)組中存放的如果是字符串的話,可以使用連接符將其所有的元素進(jìn)行連接

//注意數(shù)組中的元素必須都是字符串

NSString*content?=?[array1componentsJoinedByString:@","];

//7.----------------------lastObject

//訪問數(shù)組最后一個(gè)元素

NSString*lastObj?=?[array1 lastObject];

//8.----------------------arrayByAddingObject

//在原來的數(shù)組后面追加元素,返回一個(gè)新的數(shù)組對(duì)象,因?yàn)樗遣豢勺兊?/b>

NSArray*array3=?[array1arrayByAddingObject:@"zhaoliu"];

//數(shù)組的遍歷

for(inti=0;i

NSString*str?=?[array1objectAtIndex:i];

NSLog(@"%@",str);

}

//快速遍歷

for(NSString*s?in?array1){

NSLog(@"%@",s);

}

//xcode4.4以后,編譯器對(duì)數(shù)組的創(chuàng)建和訪問語法做了優(yōu)化

NSArray*array7=?@[s1,s2,s3];

NSString*s?=?array7[0];

NSMutableArray

//1.---------------------創(chuàng)建可變數(shù)組

NSString*str1=@"zhangsan";

NSString*str2=@"lisi";

NSString*str3=@"wangwu";

NSMutableArray*mArray1=?[[NSMutableArrayalloc]initWithObjects:str1,str2,str3,nilnil];

//下面的這種方式創(chuàng)建的數(shù)組是錯(cuò)誤的

//下面的這種方式是創(chuàng)建不可變數(shù)組的方式,不能喲關(guān)于可變數(shù)組的創(chuàng)建

//NSMutableArray?*array1?=?@[str1,str2,str3];

//先開辟5個(gè)空間,用于存儲(chǔ)元素,當(dāng)存儲(chǔ)的元素超過了5個(gè),數(shù)組會(huì)自動(dòng)增大空間

NSMutableArray*mArray2=?[[NSMutableArrayalloc]initWithCapacity:5];

//使用類方法創(chuàng)建

NSMutableArray*mArray3=?[NSMutableArrayarrayWithCapacity:5];

//2.---------------------addObject

//添加元素的方法

[mArray1addObject:str1];

[mArray1addObject:str2];

//添加數(shù)組,把mArray1中的所有元素全部添加到mArray2中

[mArray2addObjectsFromArray:mArray1];

NSLog(@"mArray3?=?%@",mArray2);

//二維數(shù)組

//這個(gè)是將mArray1添加到mArray2數(shù)組中,這樣mArray2就變成了二維數(shù)組了

[mArray2addObject:mArray1];

//3.---------------------insertObject

//在指定的位置上插入特定元素

[mArray2insertObject:@"def"atIndex:0];

//4.---------------------replaceObjectAdIdex

//替換元素

[mArray2replaceObjectAtIndex:0withObject:@"aaa"];

//5.---------------------exchangeObjectAtIndex

//互換兩個(gè)元素的位置

[mArray2exchangeObjectAtIndex:0withObjectAtIndex:3];

//6.---------------------removeObjectAdIndex

//刪除指定位置的元素

[mArray2removeObjectAtIndex:0];

//刪除最后一個(gè)元素

[mArray2removeLastObject];

//刪除指定的對(duì)象

[mArray2removeObject:@"lisi"];

//刪除所有的對(duì)象/清空列表

[mArray2removeAllObjects];

注:OC中沒有泛型的概念,所以對(duì)于數(shù)組中存放了不同類型的值,在運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò)的,這個(gè)和Java相比,操作集合類的時(shí)候安全性就差了點(diǎn)。所以我們在操作集合類的時(shí)候需要注意的地方。


NSString類

一、NSString的初始化方法:

+(NSString*)stringWithString:

NSString *str=@"hello";

NSString *str1=[NSString stringWithString:str];

+(NSString*)stringWithFormat:

NSString

*str2=[NSStringstringWithFormat:@"hello%d",10];

-(NSString*)initWithString:

NSString *str3=[[NSString alloc]initWithString:@"hello"];

-(NSString*)initWithFormat:

NSString *str4=[[NSString

alloc]initWithFormat:@"hello"];

二、從文件中讀取字符串:

+(NSString*)stringWithContentsOfFile:encoding: error:

NSString

*str5=[NSStringstringWithContentsOfFile:@"/Users/stjy/Desktop/zh/oc_class8

NSString等/oc_class8

NSString等/File1"encoding:NSUTF8StringEncodingerror:nil];

三、從網(wǎng)絡(luò)中獲取字符串:

+(NSString*)stringWithContentsOfURL: encoding:

error:

NSURL *url=[NSURL

alloc]initWithString:@"http://www.bluejob.cn/career/lists/1/"];//創(chuàng)建URL對(duì)象

NSError *error=nil;

NSString *str6=[NSString stringWithContentsOfURL:urlencoding:NSUTF8StringEncodingerror:&error];

四、獲取指定范圍字符串并進(jìn)行一系列操作

1、獲取指定范圍的子字符串,NSRange是一個(gè)結(jié)構(gòu)體類型,包含起始位置和長度兩個(gè)int型變量

-(NSString *)substringWithRange:

NSString *str7=@"helloworld";

NSRange range=NSMakeRange(3,3);//創(chuàng)建范圍結(jié)構(gòu)體

NSString *subStr7=[str7

substringWithRange:range];//獲取指定范圍的子字符串

2.字符串替換,指定范圍

-(NSString*)stringByReplacingCharactersInRange: withString:

NSString *str8=[str7 stringByReplacingCharactersInRange:rangewithString:@"*"];//替換字符范圍為(3,3)的值為*

3、求子字符串在母串中的范圍,返回NSRange類型

-(NSRange)rangeOfString:

4.求指定范圍的子字符串,C函數(shù)

NSRange ra=[str7 rangeOfString:subStr7];

NSLog(@"%@",NSStringFromRange(ra));

5.比較兩個(gè)字符串內(nèi)容是否相同

- (BOOL)isEqualToString:(NSString *)aString

6.比較兩個(gè)字符串的大小

- (NSComparisonResult)compare:(NSString

*)aString

enum {NSOrderedAscending= -1,NSOrderedSame,NSOrderedDescending};typedef NSInteger NSComparisonResult; //枚舉類型

7.分割字符串

- (NSArray*)componentsSeparatedByString:(NSString *)separator

1.截取字符串

NSString*string =@"sdfsfsfsAdfsdf";

string = [string?substringToIndex:7];//截取下標(biāo)7之前的字符串

NSLog(@"截取的值為:%@",string);

[string?substringFromIndex:2];//截取下標(biāo)2之后的字符串

NSLog(@"截取的值為:%@",string);

2.匹配字符串

NSString*string =@"sdfsfsfsAdfsdf";

NSRangerange = [stringrangeOfString:@"f"];//匹配得到的下標(biāo)

NSLog(@"rang:%@",NSStringFromRange(range));

string = [string?substringWithRange:range];//截取范圍類的字符串

NSLog(@"截取的值為:%@",string);

3.分隔字符串

NSString*string =@"sdfsfsfsAdfsdf";

NSArray?*array = [string?componentsSeparatedByString:@"A"]; //從字符A中分隔成2個(gè)元素的數(shù)組

NSLog(@"array:%@",array); //結(jié)果是adfsfsfs和dfsdf


日期

NSDate *date1=[NSDate date];//獲得當(dāng)前日期NSLog(@"%@",date1);

//結(jié)果:2014-07-16 07:25:28 +0000

NSDate *date2=[NSDate dateWithTimeIntervalSinceNow:100];//在當(dāng)前日期的基礎(chǔ)上加上100秒,注意在ObjC中多數(shù)時(shí)間單位都是秒NSLog(@"%@",date2);

//結(jié)果:2014-07-16 07:27:08 +0000

NSDate *date3=[NSDate distantFuture];//隨機(jī)獲取一個(gè)將來的日期

NSLog(@"%@",date3);

//結(jié)果:4001-01-01 00:00:00 +0000

NSTimeInterval time=[date2 timeIntervalSinceDate:date1];//日期之差,返回單位為秒

NSLog(@"%f",time);

//結(jié)果:100.008833

NSDate *date5=[date1 earlierDate:date3];//返回比較早的日期

NSLog(@"%@",date5);

//結(jié)果:2014-07-16 07:25:28 +0000

//日期格式化

NSDateFormatter *formater1=[[NSDateFormatter alloc]init];

formater1.dateFormat=@"yy-MM-dd HH:mm:ss";

NSString *datestr1=[formater1 stringFromDate:date1];

NSLog(@"%@",datestr1);

//結(jié)果:14-07-16 15:25:28

//字符串轉(zhuǎn)化為日期

NSDate *date6=[formater1 dateFromString:@"14-02-14 11:07:16"];

NSLog(@"%@",date6);

//結(jié)果:2014-02-14 03:07:16 +0000


不可變字符串

/**字符串操作*/

voidtest1(){char*str1="C string";//這是C語言創(chuàng)建的字符串

NSString *str2=@"OC string";

//ObjC字符串需要加@,并且這種方式創(chuàng)建的對(duì)象不需要自己釋放內(nèi)存

//下面的創(chuàng)建方法都應(yīng)該釋放內(nèi)存arc不需要

NSString *str3=[[NSString alloc] init];

str3=@"OC string";

NSString *str4=[[NSString alloc] initWithString:@"Objective-C string"];

NSString *str5=[[NSString alloc] initWithFormat:@"age is %i,name is %.2f",19,1.72f];

NSString *str6=[[NSString alloc] initWithUTF8String:"C string"];//C語言的字符串轉(zhuǎn)換為ObjC字符串

//以上方法都有對(duì)應(yīng)靜態(tài)方法(一般以string開頭),不需要管理內(nèi)存(系統(tǒng)靜態(tài)方法一般都是自動(dòng)釋放)

NSString *str7=[NSString stringWithString:@"Objective-C string"];

NSLog(@"\"Hello world!\" to upper is %@",[@"Hello world!"uppercaseString]);

//結(jié)果:"Hello world!" to upper is HELLO WORLD!

NSLog(@"\"Hello world!\" to lowwer is %@",[@"Hello world!"lowercaseString]);

//結(jié)果:"Hello world!" to lowwer is hello world!

//首字母大寫,其他字母小寫

NSLog(@"\"Hello world!\" to capitalize is %@",[@"Hello world!"capitalizedString]);

//結(jié)果:"Hello world!" to capitalize is Hello World!

BOOL result= [@"abc"isEqualToString:@"aBc"];

NSLog(@"%i",result);

//結(jié)果:0NSComparisonResult result2= [@"abc"compare:@"aBc"];

//如果是[@"abc" caseInsensitiveCompare:@"aBc"]則忽略大小寫比較if(result2==NSOrderedAscending){

NSLog(@"left

}else if(result2==NSOrderedDescending){

NSLog(@"left>right.");

}else if(result2==NSOrderedSame){

NSLog(@"left=right.");

}

//結(jié)果:left>right.}voidtest3(){

NSLog(@"has prefix ab? %i",[@"abcdef"hasPrefix:@"ab"]);

//結(jié)果:has prefix ab? 1

NSLog(@"has suffix ab? %i",[@"abcdef"hasSuffix:@"ef"]);

//結(jié)果:has suffix ab? 1

NSRange range=[@"abcdefabcdef"rangeOfString:@"cde"];

//注意如果遇到cde則不再往后面搜索,如果從后面搜索或其他搜索方式可以設(shè)置第二個(gè)options參數(shù)

if(range.location==NSNotFound){

NSLog(@"not found.");

}else{

NSLog(@"range is %@",NSStringFromRange(range));

}

//結(jié)果:range is {2, 3}}//字符串分割voidtest4(){

NSLog(@"%@",[@"abcdef"substringFromIndex:3]);

//從第三個(gè)索引開始(包括第三個(gè)索引對(duì)應(yīng)的字符)截取到最后一位

//結(jié)果:def

NSLog(@"%@",[@"abcdef"substringToIndex:3]);

////從0開始截取到第三個(gè)索引(不包括第三個(gè)索引對(duì)應(yīng)的字符)

//結(jié)果:abc

NSLog(@"%@",[@"abcdef"substringWithRange:NSMakeRange(2, 3)]);

//結(jié)果:cdeNSString *str1=@"12.abcd.3a";

NSArray *array1=[str1 componentsSeparatedByString:@"."];

//字符串分割NSLog(@"%@",array1);

/*結(jié)果:

(

12,

abcd,

3a

)

*/}

//其他操作voidtest5(){

NSLog(@"%i",[@"12"intValue]);//類型轉(zhuǎn)換

//結(jié)果:12

NSLog(@"%zi",[@"hello world,世界你好!"length]);

//字符串長度注意不是字節(jié)數(shù)

//結(jié)果:17

NSLog(@"%c",[@"abc"characterAtIndex:0]);

//取出制定位置的字符

//結(jié)果:aconst char*s=[@"abc"UTF8String];

//轉(zhuǎn)換為C語言字符串

NSLog(@"%s",s);

//結(jié)果:abc}



可變字符串


/*可變字符串,注意NSMutableString是NSString子類*/

//注意雖然initWithCapacity分配字符串大小,但是不是絕對(duì)的不可以超過此范圍,聲明此變量對(duì)性能有好處

NSMutableString *str1= [[NSMutableString alloc] initWithCapacity:10];

[str1 setString:@"hello"];//設(shè)置字符串NSLog(@"%@",str1);

/結(jié)果:hello[str1 appendString:@",world!"];

//追加字符串

NSLog(@"%@",str1);

//結(jié)果:hello,world![str1 appendFormat:@"我的年齡是%i。dear,I love you.",18];

NSLog(@"%@",str1);

//結(jié)果:hello,world!我的年齡是18。dear,I love you.

//替換字符串

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

[str1 replaceCharactersInRange:range withString:@"Honey"];

NSLog(@"%@",str1);

//結(jié)果:hello,world!我的年齡是18。Honey,I love you.

//插入字符串

[str1 insertString:@"My name is Kenshin."atIndex:12];

NSLog(@"%@",str1);

//結(jié)果:hello,world!My name is Kenshin.我的年齡是18。Honey,I love you.

//刪除指定字符串[str1 deleteCharactersInRange:[str1 rangeOfString:@"My name is Kenshin."]];

//刪除指定范圍的字符串NSLog(@"%@",str1);//結(jié)果:hello,world!我的年齡是18。Honey,I love you.


參考:iOS開發(fā)系列—Objective-C之Foundation框架 來自崔江濤(KenshinCui)

有一些找不到出處,都是百度找到的,如果需要請(qǐng)自行百度 這么長肯定沒人看。。。











最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容