iOS字符串操作總結(jié)

//將NSData轉(zhuǎn)化為NSString? ? ? ?

?NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];

//將NSString 轉(zhuǎn)化為NSData (NSString.h)

- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding;??

//在一個字符串中刪除一個字符或字符串

[_display deleteCharactersInRange:NSMakeRange(index_of_char_to_remove, 1)];

整數(shù)型轉(zhuǎn)換為字符串

NSString *returnStr;

returnStr = [[NSNumber numberWithInt:row] stringValue];??

? NSString? ? ? *******************************************************************************************/? ? ??

//一、NSString? ? ? ??

? /*----------------創(chuàng)建字符串的方法----------------*/? ? ? ? ?

?? //1资铡、創(chuàng)建常量字符串年堆。? ? ??

NSString *astring = @"This is a String!";? ? ??

//2、創(chuàng)建空字符串,給予賦值功蜓。? ? ? ? ?

?? NSString *astring = [[NSString alloc] init];? ? ?

?astring = @"This is a String!";? ??

? [astring release];? ? ? NSLog(@"astring:%@",astring); ? ? ? ? ? ?

//3逝撬、在以上方法中,提升速度:initWithString方法? ? ? ? ??

? NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];? ? ? NSLog(@"astring:%@",astring);? ? ?

?[astring release];? ? ? ? ? ??

//4钱磅、用標(biāo)準(zhǔn)c創(chuàng)建字符串:initWithCString方法? ? ? ? ? ??

char *Cstring = "This is a String!";? ? ??

NSString *astring = [[NSString alloc] initWithCString:Cstring];? ? ? NSLog(@"astring:%@",astring);? ? ?

?[astring release];? ? ? ? ? ??

//5梦裂、創(chuàng)建格式化字符串:占位符(由一個%加一個字符組成)? ? ? ? ? ??

int i = 1;? ? ??

int j = 2;? ? ??

NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];? ? ??

NSLog(@"astring:%@",astring);? ? ??

[astring release];? ? ? ? ? ??

//6、創(chuàng)建臨時字符串? ? ? ? ? ?

?NSString *astring;? ? ??

astring = [NSString stringWithCString:"This is a temporary string"];? ? ? NSLog(@"astring:%@",astring);? ? ? ? ? ??

/*----------------從文件讀取字符串:initWithContentsOfFile方法----------------*/? ? ? ? ? ? ? ? NSString *path = @"astring.text";? ? ??

NSString *astring = [[NSString alloc] initWithContentsOfFile:path];? ? ? NSLog(@"astring:%@",astring);? ? ??

[astring release];? ? ? ? ? ??

/*----------------寫字符串到文件:writeToFile方法----------------*/? ? ? ? ? ? ? ? NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];? ? ? NSLog(@"astring:%@",astring);? ? ??

NSString *path = @"astring.text";? ? ? ? ?

?[astring writeToFile: path atomically: YES];? ? ??

[astring release];? ? ? ? ? ? ? ??

/*----------------比較兩個字符串----------------*/? ? ? ? ? ? ? ? ? ??

//用C比較:strcmp函數(shù)? ? ? ? ? ??

char string1[] = "string!";? ? ? char string2[] = "string!";? ? ?

?if(strcmp(string1, string2) = = 0)? ? ??

{? ? ? ? ? NSLog(@"1");? ? ? }? ? ??

//isEqualToString方法? ? ? ? ??

NSString *astring01 = @"This is a String!";? ? ??

NSString *astring02 = @"This is a String!";? ? ?

?BOOL result = [astring01 isEqualToString:astring02];? ? ?

?NSLog(@"result:%d",result);? ? ??

//compare方法(comparer返回的三種值)? ? ? ? ??

NSString *astring01 = @"This is a String!";? ? ??

NSString *astring02 = @"This is a String!";? ? ? ? ??

BOOL result = [astring01 compare:astring02] = = NSOrderedSame;? ? ? ? ? NSLog(@"result:%d",result);? ? ? ? ??

//NSOrderedSame判斷兩者內(nèi)容是否相同? ? ??

NSString *astring01 = @"This is a String!";? ? ??

NSString *astring02 = @"this is a String!";? ? ??

BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;? ? ? ? ? NSLog(@"result:%d",result);? ? ??

//NSOrderedAscending判斷兩對象值的大小(按字母順序進(jìn)行比較盖淡,astring02大于astring01為真)? ? ? ? ? ??

NSString *astring01 = @"this is a String!";? ? ??

NSString *astring02 = @"This is a String!";? ? ?

?BOOL result = [astring01 compare:astring02] = = NSOrderedDescending;? ? ? ? ? NSLog(@"result:%d",result);? ? ? ? ?

?//NSOrderedDescending判斷兩對象值的大小(按字母順序進(jìn)行比較年柠,astring02小于astring01為真)? ? ? ? ? ??

//不考慮大小寫比較字符串1? ? ??

NSString *astring01 = @"this is a String!";? ? ??

NSString *astring02 = @"This is a String!";? ? ??

BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;? ? ? ? ? NSLog(@"result:%d",result);? ? ? ? ??

//NSOrderedDescending判斷兩對象值的大小(按字母順序進(jìn)行比較,astring02小于astring01為真)? ? ??

//不考慮大小寫比較字符串2? ? ??

NSString *astring01 = @"this is a String!";? ? ??

NSString *astring02 = @"This is a String!";? ? ??

BOOL result = [astring01 compare:astring02? ? ? ? ? ? ? ? ? ? ? ? ? ? ? options:NSCaseInsensitiveSearch | NSNumericSearch] = = NSOrderedSame;? ? ? ? ? NSLog(@"result:%d",result);? ? ? ? ??

?//NSCaseInsensitiveSearch:不區(qū)分大小寫比較 NSLiteralSearch:進(jìn)行完全比較褪迟,區(qū)分大小寫 NSNumericSearch:比較字符串的字符個數(shù)冗恨,而不是字符值。? ? ??

/*----------------改變字符串的大小寫----------------*/? ? ? ? ??

NSString *string1 = @"A String";? ? ??

?NSString *string2 = @"String";? ? ??

NSLog(@"string1:%@",[string1 uppercaseString]);//大寫? ? ??

NSLog(@"string2:%@",[string2 lowercaseString]);//小寫? ? ??

NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小? ? ??

/*----------------在串中搜索子串----------------*/? ? ? ? ? ? ??

NSString *string1 = @"This is a string";? ? ??

NSString *string2 = @"string";? ? ??

NSRange range = [string1 rangeOfString:string2];? ? ?

?int location = range.location;? ? ?

?int leight = range.length;? ? ??

NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];? ? ? NSLog(@"astring:%@",astring);? ? ?

?[astring release];? ? ??

/*----------------抽取子串 ----------------*/? ? ? ? ? ? ??

//-substringToIndex: 從字符串的開頭一直截取到指定的位置味赃,但不包括該位置的字符? ? ? NSString *string1 = @"This is a string";? ? ??

NSString *string2 = [string1 substringToIndex:3]; ? ? ?

NSLog(@"string2:%@",string2);? ? ? ? ? ??

//-substringFromIndex: 以指定位置開始(包括指定位置的字符)派近,并包括之后的全部字符? ? ? NSString *string1 = @"This is a string";? ? ??

NSString *string2 = [string1 substringFromIndex:3];? ? ??

NSLog(@"string2:%@",string2);? ? ??

//-substringWithRange: //按照所給出的位置,長度洁桌,任意地從字符串中截取子串? ? ? NSString *string1 = @"This is a string";? ? ?

?NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];? ? ? NSLog(@"string2:%@",string2);? ? ??

//擴(kuò)展路徑? ? ??

NSString *Path = @"~/NSData.txt";? ? ?

?NSString *absolutePath = [Path stringByExpandingTildeInPath];? ? ? NSLog(@"absolutePath:%@",absolutePath);? ? ??

NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);? ? ?

?//文件擴(kuò)展名? ? ??

NSString *Path = @"~/NSData.txt";? ? ??

NSLog(@"Extension:%@",[Path pathExtension]);? ??

/*******************************************************************************************? ? ? NSMutableString? *******************************************************************************************/? ? ? ? ??

/*---------------給字符串分配容量----------------*/? ? ??

//stringWithCapacity:? ? ??

NSMutableString *String;? ? ??

String = [NSMutableString stringWithCapacity:40];? ? ?

?/*---------------在已有字符串后面添加字符----------------*/? ? ? ? ? //appendString: and appendFormat:? ? ??

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];? ? ??

//[String1 appendString:@", I will be adding some character"];? ? ??

[String1 appendFormat:[NSString stringWithFormat:@", I will be adding some character"]];? ? ??

NSLog(@"String1:%@",String1);? ? ? */? ? ??

/*--------在已有字符串中按照所給出范圍和長度刪除字符------*/? ? ? ? ? //deleteCharactersInRange:? ? ??

?NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];? ? ??

?[String1 deleteCharactersInRange:NSMakeRange(0, 5)];? ? ? NSLog(@"String1:%@",String1);? ? ??

/*--------在已有字符串后面在所指定的位置中插入給出的字符串------*/? ? ??

//-insertString: atIndex:? ? ??

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];? ? ??

[String1 insertString:@"Hi! " atIndex:0];? ? ??

NSLog(@"String1:%@",String1);? ? ??

/*--------將已有的空符串換成其它的字符串------*/? ? ??

//-setString:? ? ??

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];? ? ??

[String1 setString:@"Hello Word!"];? ? ??

NSLog(@"String1:%@",String1);? ? ??

/*--------按照所給出的范圍渴丸,和字符串替換的原有的字符------*/? ? ??

//-setString:? ? ??

NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];? ? ??

[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];? ? ? NSLog(@"String1:%@",String1);? ? ?

?/*-------------判斷字符串內(nèi)是否還包含別的字符串(前綴,后綴)-------------*/? ? ? //01:檢查字符串是否以另一個字符串開頭

- (BOOL) hasPrefix: (NSString *) aString;? ? ??

NSString *String1 = @"NSStringInformation.txt";? ? ?

?[String1 hasPrefix:@"NSString"] = = 1 ?? NSLog(@"YES") : NSLog(@"NO");? ? ?

?[String1 hasSuffix:@".txt"] = = 1 ?? NSLog(@"YES") : NSLog(@"NO");? ? ??

//02:查找字符串某處是否包含其它字符串?

- (NSRange) rangeOfString: (NSString *) aString,這一點(diǎn)前面在串中搜索子串用到過;? /*******************************************************************************************? ? ? NSArray? *******************************************************************************************/? ? ?

?/*---------------------------創(chuàng)建數(shù)組------------------------------*/? ? ? //NSArray *array = [[NSArray alloc] initWithObjects:? ? ? @"One",@"Two",@"Three",@"Four",nil];? ? ??

self.dataArray = array;? ? ??

[array release];? ? ??

//- (unsigned) Count;數(shù)組所包含對象個數(shù)谱轨;? ? ??

NSLog(@"self.dataArray cound:%d",[self.dataArray count]);? ? ? ? ? ??

//- (id) objectAtIndex: (unsigned int) index;獲取指定索引處的對象;? ? ? NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);? ? ?

?/*--------------------------從一個數(shù)組拷貝數(shù)據(jù)到另一數(shù)組(可變數(shù)級)----------------------------*/? ? ? ? ? ? ? ??

//arrayWithArray:? ? ??

//NSArray *array1 = [[NSArray alloc] init];? ? ??

NSMutableArray *MutableArray = [[NSMutableArray alloc] init];? ? ??

NSArray *array = [NSArray arrayWithObjects: @"a",@"b",@"c",nil];? ? ? NSLog(@"array:%@",array);? ? ??

MutableArray = [NSMutableArray arrayWithArray:array];? ? ? NSLog(@"MutableArray:%@",MutableArray);? ? ??

array1 = [NSArray arrayWithArray:array];? ? ?

?NSLog(@"array1:%@",array1);? ? ??

//Copy? ? ? //id obj;? ? ??

NSMutableArray *newArray = [[NSMutableArray alloc] init];? ? ??

NSArray *oldArray = [NSArray arrayWithObjects:? ? ? ? ? ? ? ? ? ? ? ? ? @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];? ? ? ? ? ??

NSLog(@"oldArray:%@",oldArray);? ? ??

for(int i = 0; i < [oldArray count]; i++)? ? ? { ? ?obj = [[oldArray objectAtIndex:i] copy];? ? ? ? ? [newArray addObject: obj];? ? ? }? ? ??

//NSLog(@"newArray:%@", newArray);? ? ?

?[newArray release];? ? ? ? ? ??

//快速枚舉? ? ? ? ? ??

//NSMutableArray *newArray = [[NSMutableArray alloc] init];? ? ??

NSArray *oldArray = [NSArray arrayWithObjects:? ? ? ? ? ? ? ? ? ? ? ? ? @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];? ? ? ? ??

NSLog(@"oldArray:%@",oldArray);? ? ? ? ? ??

for(id obj in oldArray)? ? ? { [newArray addObject: obj]; ?}? ? ??

// NSLog(@"newArray:%@", newArray);? ? ??

[newArray release];? ? ? ? ? ? ? ??

//Deep copy? ? ? ? ? ??

//NSMutableArray *newArray = [[NSMutableArray alloc] init];? ? ??

NSArray *oldArray = [NSArray arrayWithObjects:? ? ? ? ? ? ? ? ? ? ? ? ? @"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];? ? ? ? ??

NSLog(@"oldArray:%@",oldArray);? ? ? ? ??

newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);? ? ? NSLog(@"newArray:%@", newArray);? ? ?

?[newArray release];? ? ? ? ? ? ? ??

//Copy and sort? ? ? ? ? ??

//NSMutableArray *newArray = [[NSMutableArray alloc] init];? ? ??

NSArray *oldArray = [NSArray arrayWithObjects:? ? ? ? ? ? ? ? ? ? ? ? ? @"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];? ? ? ? ??

NSLog(@"oldArray:%@",oldArray);? ? ??

NSEnumerator *enumerator;? ? ??

enumerator = [oldArray objectEnumerator];? ? ?

?id obj;? ? ??

while(obj = [enumerator nextObject]) ? { ?[newArray addObject: obj]; }? ? ??

[newArray sortUsingSelector:@selector(compare:)];? ? ??

NSLog(@"newArray:%@", newArray);? ? ??

[newArray release];? ? ? ? ? ? ? ? ? ? ? ??

/*---------------------------切分?jǐn)?shù)組------------------------------*/? ? ? ? ? ? //從字符串分割到數(shù)組- componentsSeparatedByString:? ? ??

NSString *string = [[NSString alloc] initWithString:@"One,Two,Three,Four"];? ? ? NSLog(@"string:%@",string);? ? ? ? ??

NSArray *array = [string componentsSeparatedByString:@","];? ? ? NSLog(@"array:%@",array);? ? ??

[string release];? ? ? ? ? ? ? ? ??

//從數(shù)組合并元素到字符串- componentsJoinedByString:? ? ??

NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];? ? ??

NSString *string = [array componentsJoinedByString:@","];? ? ? NSLog(@"string:%@",string);? ? ? ? /*******************************************************************************************? ? ? NSMutableArray? ? ? *******************************************************************************************/? ? ??

/*---------------給數(shù)組分配容量----------------*/? ? ??

//NSArray *array;? ? ??

array = [NSMutableArray arrayWithCapacity:20];? ? ? ? ? ?

?/*--------------在數(shù)組末尾添加對象----------------*/? ? ??

//- (void) addObject: (id) anObject;? ? ??

//NSMutableArray *array = [NSMutableArray arrayWithObjects:? ? ? @"One",@"Two",@"Three",nil];? ? ??

[array addObject:@"Four"];? ? ??

NSLog(@"array:%@",array);? ? ? ? ? ??

/*--------------刪除數(shù)組中指定索引處對象----------------*/? ? ? ? ??

//-(void) removeObjectAtIndex: (unsigned) index;? ? ? ? ??

//NSMutableArray *array = [NSMutableArray arrayWithObjects:? ? ? @"One",@"Two",@"Three",nil];? ? ??

[array removeObjectAtIndex:1];? ? ??

NSLog(@"array:%@",array);? ? ? ? ? ??

/*-------------數(shù)組枚舉---------------*/? ? ? ? ??

//- (NSEnumerator *)objectEnumerator;從前向后? ? ??

//NSMutableArray *array = [NSMutableArray arrayWithObjects:? ? ? @"One",@"Two",@"Three",nil];? ? ??

NSEnumerator *enumerator;? ? ?

?enumerator = [array objectEnumerator];? ? ? ? ? ?

?id thingie;? ? ??

while (thingie = [enumerator nextObject]) { NSLog(@"thingie:%@",thingie); ?}? ? ? ? ? ? //- (NSEnumerator *)reverseObjectEnumerator;從后向前? ? ??

//NSMutableArray *array = [NSMutableArray arrayWithObjects:? ? ? @"One",@"Two",@"Three",nil];? ? ?

?NSEnumerator *enumerator;? ? ??

enumerator = [array reverseObjectEnumerator];? ? ? ? ? ??

id object;? ? ??

while (object = [enumerator nextObject]) { ?NSLog(@"object:%@",object); }? ? ? ? ? ? ? ? ? //快速枚舉? ? ??

//NSMutableArray *array = [NSMutableArray arrayWithObjects:? ? ? @"One",@"Two",@"Three",nil];? ? ??

for(NSString *string in array)? ? ? { NSLog(@"string:%@",string); }? ? ? ? /*******************************************************************************************? ? ? NSDictionary? ? ? *******************************************************************************************/? ? ? ? ? ??

/*------------------------------------創(chuàng)建字典------------------------------------*/? ? ??

//- (id) initWithObjectsAndKeys;? ? ? ? ? ??

//NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];? ? ??

NSString *string = [dictionary objectForKey:@"One"];? ? ??

NSLog(@"string:%@",string);? ? ??

NSLog(@"dictionary:%@",dictionary);? ? ??

[dictionary release];? ? ? ? ? ? ? ? ? /*******************************************************************************************? ? ? NSMutableDictionary? ? ? *******************************************************************************************/? ? ? ? ? ??

/*------------------------------------創(chuàng)建可變字典------------------------------------*/? ? ? ? ??

//創(chuàng)建? ? ? NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];? ? ? ? ? ? //添加字典? ? ? [dictionary setObject:@"One" forKey:@"1"];? ? ??

[dictionary setObject:@"Two" forKey:@"2"];? ? ?

?[dictionary setObject:@"Three" forKey:@"3"];? ? ??

[dictionary setObject:@"Four" forKey:@"4"];? ? ??

NSLog(@"dictionary:%@",dictionary);? ? ? ? ? ??

//刪除指定的字典? ? ? [dictionary removeObjectForKey:@"3"];? ? ? NSLog(@"dictionary:%@",dictionary);? ? ? ? /*******************************************************************************************? ? ? NSValue(對任何對象進(jìn)行包裝)? ? ? *******************************************************************************************/? ? ? ? ? ?

?/*--------------------------------將NSRect放入NSArray中------------------------------------*/? ? ? ? ??

//將NSRect放入NSArray中? ? ?

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

NSValue *value;? ? ??

CGRect rect = CGRectMake(0, 0, 320, 480);? ? ? ? ?

?value = [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];? ? ??

[array addObject:value];? ? ??

NSLog(@"array:%@",array);? ? ? ? ? ??

//從Array中提取? ? ??

value = [array objectAtIndex:0];? ? ??

[value getValue:&rect];? ? ??

NSLog(@"value:%@",value);? ? ? ? /*******************************************************************************************? ? ? 從目錄搜索擴(kuò)展名為jpg的文件? ? ? *******************************************************************************************/? ? ? ? ? ??

//NSFileManager *fileManager = [NSFileManager defaultManager];? ? ??

NSString *home;? ? ?

?home = @"../Users/";? ? ? ? ? ??

NSDirectoryEnumerator *direnum;? ? ??

direnum = [fileManager enumeratorAtPath: home];? ? ? ? ? ??

NSMutableArray *files = [[NSMutableArray alloc] init];? ? ? ? ? ??

//枚舉? ? ? NSString *filename;? ? ??

while (filename = [direnum nextObject]) { ?if([[filename pathExtension] hasSuffix:@"jpg"]){ ?[files addObject:filename]; } }? ? ? ? ? ??

//快速枚舉? ? ? //for(NSString *filename in direnum) ? ?{ ?if([[filename pathExtension] isEqualToString:@"jpg"])

{ ?[files addObject:filename]; } }? ? ??

NSLog(@"files:%@",files);? ? ? ? ? ??

//枚舉? ? ? NSEnumerator *filenum;? ? ??

filenum = [files objectEnumerator];? ? ??

while (filename = [filenum nextObject]) {NSLog(@"filename:%@",filename);}? ? ? ? ? ??

//快速枚舉? ? ? //for(id object in files) ?{ ?NSLog(@"object:%@",object);}? ? ??

#importint main (int argc, const char * argv[]) {

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

//創(chuàng)建字符串

NSString *height;

/**類方法:

+(id) stringWithFormat: (NSString *) format,...

通過格式字符串和參數(shù)來創(chuàng)建NSString

省略號(戒幔。。土童。):可以接受多個以逗號分割的參數(shù)诗茎。

這聲明方法時添加加號(+),那么這個方法為類方法献汗,不需要創(chuàng)建實(shí)例就可以調(diào)用敢订,通常用于創(chuàng)建心的實(shí)例,我們稱用來創(chuàng)建新對象的類方法為工廠方法罢吃。

-------------------

objective-c運(yùn)行時生成一個類的時候楚午,它會創(chuàng)建一個代表該類的類對象。類對象包含了指向超類的指針尿招,類名矾柜,和指向類方法列表的指針。類對象還包含一個long型數(shù)據(jù)就谜,為新創(chuàng)建的類實(shí)例對象指定大泄置铩(以字節(jié)為單位)

類方法可以用來訪問全局?jǐn)?shù)據(jù)。

實(shí)例方法要用前導(dǎo)減號(-)來開始聲明

*/

height=[NSString stringWithFormat:@"you heigh is %d feet,%d inches",5,11];

NSLog(height);

//length 返回字符串中字符的個數(shù)丧荐。-(unsigned int) length;

if([height length]>5){

NSLog(@"height length ------");

}

//字符串比較

/**

isEqualToString :可以用來比較接收方和當(dāng)作參數(shù)傳遞來的字符串的內(nèi)容是否相同缆瓣,返回yes和no

*/

NSString *thing1=@"hello";

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

if([thing1 isEqualToString:thing2]){

NSLog(@"they are same");

}

/**

==:只判斷指針數(shù)值,而不是它們所指向的內(nèi)容

*/

if(thing1==thing2){

NSLog(@"== same");

}

/*

compare:比較兩個字符串虹统。區(qū)分大小寫

compare將接收對象和傳遞來的字符串逐個字符的進(jìn)行比較弓坞,它返回一個NSComparisonResult(枚舉類型)來顯示結(jié)果。

typedef enum _NSComparisonResult{

NSOrderedAscending=-1;

NSOrderedsame;

NSOrderedDescending;

} NSComparisonResult;

*/

[thing1 compare:thing2];

if(NSOrderedSame==[thing1 compare:thing2]){

NSLog(@"compare same");

}

//compare:options:

/***

-(NSComparisonResult) compare:(NSString *) string

options:(unsinged) mask;

options 是一個位掩碼窟却,可以使用|添加選項(xiàng)標(biāo)記

選項(xiàng):

NSCaseInsensitiveSearch:不區(qū)分大小寫字符

NSLiteralSearch:進(jìn)行完全比較,區(qū)分大小寫

NSNumbericSearch:比較字符串的字符個數(shù)呻逆,而不是字符值

*/

if([thing1 compare:thing2 options:NSCaseInsensitiveSearch|

NSNumericSearch]==NSOrderedSame){

NSLog(@"they match");

}

/**

以某個字符串開始或結(jié)尾

-(BOOL) hasPrefix:(NSString *) aString;

-(BOOL) hasSuffix:(NSString *) aString;

*/

NSString *fileName=@"aabbbcc";

if([fileName hasPrefix:@"aa"]){

NSLog(@"begin with aa");

}

if([fileName hasSuffix:@"cc"]){

NSLog(@"end with cc");

}

//NSMutableString 可變字符串

//SString 是不可變的夸赫,一旦NSString 被創(chuàng)建了,我們就不能改變它咖城。

//+(id) stringWithCapacity:(unsinged) capacity; capacity:是給NSMutableString的一個建議茬腿,字符串的大小并不局限于所提供的大小,這個容量僅是個最優(yōu)值宜雀。

NSMutableString *str=[NSMutableString stringWithCapacity:40];

[str appendFormat:@"sdfsdf%d",5];

[str appendString:@"ssssssss"];

NSLog(str);

//刪除字符串

//-(void) deleteCharactersInRange:(NSRange) range;

NSMutableString *ms;

ms=[NSMutableString stringWithCapacity:50];

[ms appendString:@"aabbccdd"];

NSRange range;

range=[ms rangeOfString:@"cc"];

[ms deleteCharactersInRange:range];

NSLog(ms);

//截取字符串

[string substringWithRange:NSMakeRange(0, 10)];

//與實(shí)例方法一樣切平,繼承對類方法也同樣適用

//------------------集合--------------

//NSArray ,NSDictionary

/**

NSArray 是一個cocoa類,用來存儲對象的有序列表辐董。

NSArray有兩個限制:1悴品,它只能存儲objective-c的對象,而不能存儲c語言中的基本數(shù)據(jù)類型如int,float苔严,enum定枷,struct,或者nsarray中的隨機(jī)指針届氢。2欠窒,不能這nsarray中存儲nil

類方法:

arrayWithObjects:創(chuàng)建一個新的nsarray。發(fā)送一個以逗號分割的對象列表退子,這列表結(jié)尾添加nil代表列表結(jié)束岖妄,(這就是不能這nsarray中存儲nil的原因)

*/

NSArray *array=[NSArray arrayWithObjects:@"aa",@"bb",@"cc",nil];

//-(unsigned) count; 取得包含對象的個數(shù)

//-(id) objectAtIndex:(unsigned int) index; 取得索引位置的對象

int i;

for (i=0; i<[array count]; i++) {

NSLog(@"index %d has %@",i,[array objectAtIndex:i]);

}

//------------切分?jǐn)?shù)組

//-componentsSeparatedByString:

NSString *ns=@"sdf,dsfs,dfd,fdf,df,dd";

NSArray *comArr=[ns componentsSeparatedByString:@","];

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

NSLog(@"componentsSeparatedByString===%@",[comArr objectAtIndex:i]);

}

//componentJoinedByString: 合并nsarray中的元素來創(chuàng)建字符串

NSString *joinedStr=[comArr componentsJoinedByString:@"-->"];

NSLog(@"joined---= %@",joinedStr);

//可變數(shù)組

NSMutableArray *mutableArr=[NSMutableArray arrayWithCapacity:40];

[mutableArr addObject:@"aa"];

[mutableArr addObject:@"bb"];

[mutableArr addObject:@"cc"];

[mutableArr addObject:@"dd"];

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

NSLog(@"mutableArr==%@",[mutableArr objectAtIndex:i]);

}

//-----? -(void) removeObjectAtIndex:(unsinged) index; 刪除指定索引的對象,

//刪除一個對象之后,數(shù)組中并沒有留下漏洞寂祥,被刪除對象后面的數(shù)組元素的哦被前移來填補(bǔ)空缺

[mutableArr removeObjectAtIndex:2];

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

NSLog(@"removeObjectAtIndex == %@",[mutableArr objectAtIndex:i]);

}

//枚舉

//NSEnumerator ,它是cocoa用來描述這種集合迭代運(yùn)輸?shù)姆椒?/p>

//-(NSEnumerator *) objectEnumerator;

NSEnumerator *enumerator=[mutableArr objectEnumerator];

id thingie;

while(thingie=[enumerator nextObject]){

NSLog(@"i found %@",thingie);

}

//快速枚舉

for(NSString *string in mutableArr){

NSLog(@"for in == %@",string);

}

//NSDictionary 字典

/*

NSDictionary 是在給定的關(guān)鍵字(通常是一個NSString字符串)下存儲一個數(shù)值(可以是任何類型的對象)荐虐。然后你可以用這個關(guān)鍵字來查找相應(yīng)的數(shù)值。

NSDictionary 是鍵查詢的優(yōu)化存儲方式壤靶。它可以立即找出要查詢的數(shù)據(jù)缚俏,而不需要遍歷整個數(shù)組進(jìn)行查找。

+(id) dictionaryWithObjectAndKeys:(id) firstObject,....;

該方法接收對象和關(guān)鍵字交替出現(xiàn)的系列贮乳,以nil值作為終止符號忧换。

**/

NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:@"aaa",@"a",@"bbb",@"b",nil];

NSString *dicStr=[dic objectForKey:@"a"];

if([dicStr isEqualToString:@"aaa"]){

NSLog(@"------------00000000000000000");

}

//可變字典

NSMutableDictionary *mutableDic=[NSMutableDictionary dictionaryWithCapacity:50];

[mutableDic setObject:@"1111" forKey:@"1"];

[mutableDic setObject:@"222" forKey:@"2"];

//刪除 -(void) removeObjectForKe:(id) key;

[mutableDic removeObjectForKey:@"2"];

NSArray *keyArr=[mutableDic allKeys];

for(NSString *str in keyArr){

NSLog(@"key== %@",str);

NSLog(@"value== %@",[mutableDic objectForKey:str]);

}

//各種數(shù)值,NSNumber NSValue

/*

cocoa 提供了NSNumber類來包裝基本數(shù)據(jù)類型

+(NSNumber *) numberWithChar:(char) value;

+(NSNumber *) numberWithInt:(int) value;

+(NSNumber *) numberWithFloat:(float) value;

+(NSNumber *) numberWthiBool:(BOOL) value;

-(char) charValue;

-(int) intVlaue;

-(float) floatValue;

-(BOOL) boolValue;

-(NSString *) stringValue;

**/

NSNumber *number;

number=[NSNumber numberWithInt:3];

[mutableDic setObject:number forKey:@"int"];

int num=[[mutableDic objectForKey:@"int"] intValue];

NSLog(@"int object value== %d",num);

//NSValue .NSNumber實(shí)際上是NSValue的子類向拆,NSValue可以包裝任意值

/**

+(NSValue *) valueWithBytes:(const void *) value objCType:(const char *) type;

傳遞的參數(shù)是你想要包裝的數(shù)值的地址亚茬,通常,得到的是你想要存儲的變量的地址(在c語言里適用操作符 & )浓恳,你也可以提供一個描述這個數(shù)據(jù)類型的字符串刹缝,通常用來說明struct中實(shí)體的類型和大小。你不用自己寫代碼

來生成這個字符串颈将,@encode編譯器指令可以接受數(shù)據(jù)類型的名稱并為你生成合適的字符串

*/

NSRect rect= NSMakeRect(1, 2, 30, 40);

NSValue *value;

value=[NSValue valueWithBytes:&rect objCType:@encode(NSRect)];

NSMutableArray *mr=[NSMutableArray arrayWithCapacity:50];

[mr addObject:value];

//getValue 提取數(shù)據(jù)

/**

-(void) getValue:(void *) value; 要傳遞的是存儲這個數(shù)值的變量的地址

*/

/***

value=[mr objectAtIndex:0];

NSRect r;

NSLog(@"00000 ===%@",r);

[value getValue:&r];

NSLog(@"111== %@",r);

*/

/**

+(NSValue *) valueWithPoint:(NSPoint) point;

+(NSValue *) valueWithSize:(NSSize) size;

+(NSValue *) valueWithRect:(NSRect) rect;

-(NSPoint) pointValue;

-(NSSize) sizeValue;

-(NSRect) rectValue;

*/

//NSNull

/*

*+(NSNull *) null;

*/

[mutableDic setObject:[NSNull null] forKey:@"fax"];

id fax;

fax=[mutableDic objectForKey:@"fax"];

if(fax==[NSNull null]){

NSLog(@"pppppppppppppppppp");

}

[pool drain];

return 0;

}

記錄一個很簡單的小問題

截取字符串有如下方法

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

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

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

遇到一個問題,

如何直接截取某串字符串的后8位??

[string substringFromIndex:string.length- 8 ];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梢夯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晴圾,更是在濱河造成了極大的恐慌颂砸,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件死姚,死亡現(xiàn)場離奇詭異人乓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)都毒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門色罚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人账劲,你說我怎么就攤上這事戳护〗鹇眨” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵姑尺,是天一觀的道長竟终。 經(jīng)常有香客問我,道長切蟋,這世上最難降的妖魔是什么统捶? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮柄粹,結(jié)果婚禮上喘鸟,老公的妹妹穿的比我還像新娘。我一直安慰自己驻右,他們只是感情好什黑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著堪夭,像睡著了一般愕把。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上森爽,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天恨豁,我揣著相機(jī)與錄音,去河邊找鬼爬迟。 笑死橘蜜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的付呕。 我是一名探鬼主播计福,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼徽职!你這毒婦竟也來了象颖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤姆钉,失蹤者是張志新(化名)和其女友劉穎说订,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體育韩,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡克蚂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年闺鲸,在試婚紗的時候發(fā)現(xiàn)自己被綠了筋讨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡摸恍,死狀恐怖悉罕,靈堂內(nèi)的尸體忽然破棺而出赤屋,到底是詐尸還是另有隱情,我是刑警寧澤壁袄,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布类早,位于F島的核電站,受9級特大地震影響嗜逻,放射性物質(zhì)發(fā)生泄漏涩僻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一栈顷、第九天 我趴在偏房一處隱蔽的房頂上張望逆日。 院中可真熱鬧,春花似錦萄凤、人聲如沸室抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坪圾。三九已至,卻和暖如春惑朦,著一層夾襖步出監(jiān)牢的瞬間兽泄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工行嗤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已日,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓栅屏,卻偏偏與公主長得像飘千,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子栈雳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容