NSString 字符串 操作 常用
//將NSData轉化為NSString
?? ??? ?NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
//將NSString 轉化為NSData?
(NSString.h)
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding; ?
?//載一個字符串中刪除一個字符或字符串
[_display deleteCharactersInRange:NSMakeRange(index_of_char_to_remove, 1)];
數學轉換為字符串
NSString *returnStr;
returnStr = [[NSNumber numberWithInt:row] stringValue];
?? ? NSString ?
?? ? *******************************************************************************************/ ?
?? ?//一、NSString???? ?
?? ?/*----------------創建字符串的方法----------------*/ ?
?? ? ?
?? ?//1、創建常量字符串。 ?
?? ?NSString *astring = @"This is a String!"; ?
?? ? ?
?? ? ?
?? ?//2、創建空字符串,給予賦值。 ?
?? ? ?
?? ?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、用標準c創建字符串:initWithCString方法 ?
?? ? ?
?? ?char *Cstring = "This is a String!"; ?
?? ?NSString *astring = [[NSString alloc] initWithCString:Cstring]; ?
?? ?NSLog(@"astring:%@",astring); ?
?? ?[astring release]; ?
?? ? ?
?? ? ?
?? ? ?
?? ?//5、創建格式化字符串:占位符(由一個%加一個字符組成) ?
?? ? ?
?? ?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、創建臨時字符串 ?
?? ? ?
?? ?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函數 ?
?? ? ?
?? ?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判斷兩者內容是否相同 ?
?? ? ?
?? ? ?
?? ? ?
?? ? ?
?? ?NSString *astring01 = @"This is a String!"; ?
?? ?NSString *astring02 = @"this is a String!"; ?
?? ?BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;???? ?
?? ?NSLog(@"result:%d",result); ?
?? ?//NSOrderedAscending判斷兩對象值的大小(按字母順序進行比較,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判斷兩對象值的大小(按字母順序進行比較,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判斷兩對象值的大小(按字母順序進行比較,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:不區分大小寫比較 NSLiteralSearch:進行完全比較,區分大小寫 NSNumericSearch:比較字符串的字符個數,而不是字符值。 ?
?? ? ?
?? ? ?
?? ?/*----------------改變字符串的大小寫----------------*/???? ?
?? ? ?
?? ?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); ?
?? ? ?
?? ? ?
?? ?//擴展路徑 ?
?? ? ?
?? ?NSString *Path = @"~/NSData.txt"; ?
?? ?NSString *absolutePath = [Path stringByExpandingTildeInPath]; ?
?? ?NSLog(@"absolutePath:%@",absolutePath); ?
?? ?NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]); ?
?? ? ?
?? ? ?
?? ? ?
?? ?//文件擴展名 ?
?? ?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); ?
?? ? ?
?? ? ?
?? ? ?
?? ?/*-------------判斷字符串內是否還包含別的字符串(前綴,后綴)-------------*/ ?
?? ?//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,這一點前面在串中搜索子串用到過; ?
?? ? ?
?? ? ?
?? ? ?
?? ?/******************************************************************************************* ?
?? ? NSArray ?
?? ? *******************************************************************************************/ ?
?? ? ?
?? ?/*---------------------------創建數組------------------------------*/ ?
?? ?//NSArray *array = [[NSArray alloc] initWithObjects: ?
?? ?@"One",@"Two",@"Three",@"Four",nil]; ?
?? ? ?
?? ?self.dataArray = array; ?
?? ?[array release]; ?
?? ? ?
?? ?//- (unsigned) Count;數組所包含對象個數; ?
?? ?NSLog(@"self.dataArray cound:%d",[self.dataArray count]); ?
?? ? ?
?? ?//- (id) objectAtIndex: (unsigned int) index;獲取指定索引處的對象; ?
?? ?NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]); ?
?? ? ?
?? ? ?
?? ?/*--------------------------從一個數組拷貝數據到另一數組(可變數級)----------------------------*/???? ?
?? ? ?
?? ?//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]; ?
?? ? ?
?? ? ?
?? ? ?
?? ?/*---------------------------切分數組------------------------------*/ ?
?? ? ?
?? ?//從字符串分割到數組- componentsSeparatedByString: ?
?? ?NSString *string = [[NSString alloc] initWithString:@"One,Two,Three,Four"]; ?
?? ?NSLog(@"string:%@",string);???? ?
?? ?NSArray *array = [string componentsSeparatedByString:@","]; ?
?? ?NSLog(@"array:%@",array); ?
?? ?[string release]; ?
?? ? ?
?? ? ?
?? ?//從數組合并元素到字符串- componentsJoinedByString: ?
?? ?NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil]; ?
?? ?NSString *string = [array componentsJoinedByString:@","]; ?
?? ?NSLog(@"string:%@",string); ?
?? ? ?
?? ? ?
?? ? ?
?? ?/******************************************************************************************* ?
?? ? NSMutableArray ?
?? ? *******************************************************************************************/ ?
?? ?/*---------------給數組分配容量----------------*/ ?
?? ?//NSArray *array; ?
?? ?array = [NSMutableArray arrayWithCapacity:20]; ?
?? ? ?
?? ? ?
?? ? ?
?? ?/*--------------在數組末尾添加對象----------------*/ ?
?? ?//- (void) addObject: (id) anObject; ?
?? ?//NSMutableArray *array = [NSMutableArray arrayWithObjects: ?
?? ?@"One",@"Two",@"Three",nil]; ?
?? ?[array addObject:@"Four"]; ?
?? ?NSLog(@"array:%@",array); ?
?? ? ?
?? ? ?
?? ? ?
?? ?/*--------------刪除數組中指定索引處對象----------------*/???? ?
?? ?//-(void) removeObjectAtIndex: (unsigned) index;???? ?
?? ?//NSMutableArray *array = [NSMutableArray arrayWithObjects: ?
?? ?@"One",@"Two",@"Three",nil]; ?
?? ?[array removeObjectAtIndex:1]; ?
?? ?NSLog(@"array:%@",array); ?
?? ? ?
?? ? ?
?? ? ?
?? ?/*-------------數組枚舉---------------*/???? ?
?? ?//- (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 ?
?? ? *******************************************************************************************/ ?
?? ? ?
?? ?/*------------------------------------創建字典------------------------------------*/ ?
?? ?//- (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 ?
?? ? *******************************************************************************************/ ?
?? ? ?
?? ?/*------------------------------------創建可變字典------------------------------------*/???? ?
?? ?//創建 ?
?? ?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(對任何對象進行包裝) ?
?? ? *******************************************************************************************/ ?
?? ? ?
?? ?/*--------------------------------將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); ?
?? ? ?
?? ? ?
?? ?/******************************************************************************************* ?
?? ? 從目錄搜索擴展名為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); ?
?? ?//} ?
?? ?#import <Foundation/Foundation.h> ?
?? ? ?
?? ?int main (int argc, const char * argv[]) { ?
?? ???? NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; ?
?? ???? //創建字符串 ?
?? ???? NSString *height; ?
?? ???? /**類方法:?
?? ????? +(id) stringWithFormat: (NSString *) format,...?
?? ????? 通過格式字符串和參數來創建NSString?
?? ????? 省略號(。。。):可以接受多個以逗號分割的參數。?
?? ????? 這聲明方法時添加加號(+),那么這個方法為類方法,不需要創建實例就可以調用,通常用于創建心的實例,我們稱用來創建新對象的類方法為工廠方法。?
?? ????? -------------------?
?? ????? objective-c運行時生成一個類的時候,它會創建一個代表該類的類對象。類對象包含了指向超類的指針,類名,和指向類方法列表的指針。類對象還包含一個long型數據,為新創建的類實例對象指定大小(以字節為單位)?
?? ????? ?
?? ????? 類方法可以用來訪問全局數據。?
?? ????? ?
?? ????? 實例方法要用前導減號(-)來開始聲明?
?? ????? ?
?? ????? */ ?
?? ????? ?
?? ???? height=[NSString stringWithFormat:@"you heigh is %d feet,%d inches",5,11]; ?
?? ???? NSLog(height); ?
?? ???? //length 返回字符串中字符的個數。-(unsigned int) length; ?
?? ???? if([height length]>5){ ?
?? ???????? NSLog(@"height length ------"); ?
?? ???? } ?
?? ????? ?
?? ???? //字符串比較 ?
?? ???? /**?
?? ????? isEqualToString :可以用來比較接收方和當作參數傳遞來的字符串的內容是否相同,返回yes和no?
?? ????? */ ?
?? ???? NSString *thing1=@"hello"; ?
?? ???? NSString *thing2=[[NSString alloc] initWithString:@"hello"]; ?
?? ???? if([thing1 isEqualToString:thing2]){ ?
?? ???????? NSLog(@"they are same");???? ?
?? ???? } ?
?? ???? /**?
?? ????? ==:只判斷指針數值,而不是它們所指向的內容?
?? ????? */ ?
?? ???? if(thing1==thing2){ ?
?? ???????? NSLog(@"== same"); ?
?? ???? } ?
?? ????? ?
?? ???? /*?
?? ????? compare:比較兩個字符串。區分大小寫?
?? ????? compare將接收對象和傳遞來的字符串逐個字符的進行比較,它返回一個NSComparisonResult(枚舉類型)來顯示結果。?
?? ????? 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 是一個位掩碼,可以使用|添加選項標記?
?? ????? 選項:?
?? ????? NSCaseInsensitiveSearch:不區分大小寫字符?
?? ????? NSLiteralSearch:進行完全比較,區分大小寫?
?? ????? NSNumbericSearch:比較字符串的字符個數,而不是字符值?
?? ????? */ ?
?? ???? if([thing1 compare:thing2 options:NSCaseInsensitiveSearch| ?
?? ????????? NSNumericSearch]==NSOrderedSame){ ?
?? ???????? NSLog(@"they match"); ?
?? ???? } ?
?? ????? ?
?? ???? /**?
?? ????? 以某個字符串開始或結尾?
?? ????? -(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 被創建了,我們就不能改變它。 ?
?? ????? ?
?? ???? //+(id) stringWithCapacity:(unsinged) capacity; capacity:是給NSMutableString的一個建議,字符串的大小并不局限于所提供的大小,這個容量僅是個最優值。 ?
?? ????? ?
?? ???? 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); ?
?? ????? ?
?? ???? //與實例方法一樣,繼承對類方法也同樣適用 ?
?? ????? ?
?? ???? //------------------集合-------------- ?
?? ???? //NSArray ,NSDictionary ?
?? ???? /**?
?? ????? NSArray 是一個cocoa類,用來存儲對象的有序列表。?
?? ???? NSArray有兩個限制:1,它只能存儲objective-c的對象,而不能存儲c語言中的基本數據類型如int,float,enum,struct,或者nsarray中的隨機指針。2,不能這nsarray中存儲nil?
?? ????? ?
?? ????? 類方法:?
?? ????? arrayWithObjects:創建一個新的nsarray。發送一個以逗號分割的對象列表,這列表結尾添加nil代表列表結束,(這就是不能這nsarray中存儲nil的原因)?
?? ????? ?
?? ????? */ ?
?? ???? NSArray *array=[NSArray arrayWithObjects:@"aa",@"bb",@"cc",nil]; ?
?? ????? ?
?? ???? //-(unsigned) count; 取得包含對象的個數 ?
?? ???? //-(id) objectAtIndex:(unsigned int) index; 取得索引位置的對象 ?
?? ????? ?
?? ???? int i; ?
?? ???? for (i=0; i<[array count]; i++) { ?
?? ???????? NSLog(@"index %d has %@",i,[array objectAtIndex:i]); ?
?? ???? } ?
?? ????? ?
?? ???? //------------切分數組 ?
?? ???? //-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中的元素來創建字符串 ?
?? ???? NSString *joinedStr=[comArr componentsJoinedByString:@"-->"]; ?
?? ???? NSLog(@"joined---= %@",joinedStr); ?
?? ????? ?
?? ???? //可變數組 ?
?? ???? 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; 刪除指定索引的對象, ?
?? ???? //刪除一個對象之后,數組中并沒有留下漏洞,被刪除對象后面的數組元素的哦被前移來填補空缺 ?
?? ???? [mutableArr removeObjectAtIndex:2]; ?
?? ???? for(int i=0;i<[mutableArr count];i++){ ?
?? ???????? NSLog(@"removeObjectAtIndex == %@",[mutableArr objectAtIndex:i]); ?
?? ???? } ?
?? ????? ?
?? ???? //枚舉 ?
?? ???? //NSEnumerator ,它是cocoa用來描述這種集合迭代運輸的方法 ?
?? ???? //-(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 是在給定的關鍵字(通常是一個NSString字符串)下存儲一個數值(可以是任何類型的對象)。然后你可以用這個關鍵字來查找相應的數值。?
?? ????? NSDictionary 是鍵查詢的優化存儲方式。它可以立即找出要查詢的數據,而不需要遍歷整個數組進行查找。?
?? ????? ?
?? ????? +(id) dictionaryWithObjectAndKeys:(id) firstObject,....;?
?? ????? 該方法接收對象和關鍵字交替出現的系列,以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]); ?
?? ???? } ?
?? ????? ?
?? ????? ?
?? ???? //各種數值,NSNumber NSValue ?
?? ???? /*?
?? ????? cocoa 提供了NSNumber類來包裝基本數據類型?
?? ????? +(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實際上是NSValue的子類,NSValue可以包裝任意值 ?
?? ????? ?
?? ???? /**?
?? ????? +(NSValue *) valueWithBytes:(const void *) value objCType:(const char *) type;?
?? ????? 傳遞的參數是你想要包裝的數值的地址,通常,得到的是你想要存儲的變量的地址(在c語言里適用操作符 & ),你也可以提供一個描述這個數據類型的字符串,通常用來說明struct中實體的類型和大小。你不用自己寫代碼?
?? ????? 來生成這個字符串,@encode編譯器指令可以接受數據類型的名稱并為你生成合適的字符串?
?? ????? */ ?
?? ???? 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 提取數據 ?
?? ???? /**?
?? ????? -(void) getValue:(void *) value; 要傳遞的是存儲這個數值的變量的地址?
?? ????? */ ?
?? ????? ?
?? ???? /***?
?? ???? 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; ?
?? ?} ?
總結
以上是生活随笔為你收集整理的NSString 字符串 操作 常用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 参数估计_随机微分方程的参数估计(一)
- 下一篇: 月份第一天_4月份的第一天,全省迎来晴暖