NSString字符串常用方法

来源:互联网 发布:大卫鲍伊 知乎 编辑:程序博客网 时间:2024/05/03 00:49
//一、NSString    
/*----------------创建字符串的方法----------------*/ 

//1、创建常量字符串。 
NSString *astring = @"This is a String!"; 


//2、创建空字符串,给予赋值。 

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

NSString *astring = [[NSString alloc] init]; 
NSLog(@"0x%.8x", astring); 
astring=@"This is a String!"; 
NSLog(@"0x%.8x", astring); 
[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); 

//} 


From:http://hellosure.iteye.com/blog/918810