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)自行百度 這么長肯定沒人看。。。