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);
//
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);
//}
?
摘自:http://hi.baidu.com/jis2007/blog/item/62b47dc2e7cab63be4dd3bff.html/cmtid/58a09f34cee304b9d1a2d331?
?
?
?
?
?
?
//NSString-不變的字符串。一個文本字符串時創建并隨后無法改變。NSString實現代表一個Unicode字符數組,換句話說,一個文本字符串。
?
? ? //初始化方法
? ? //1,1 創建 (格式初始化)
? ? NSString *str1 = [[NSString alloc] initWithFormat:@"我是 %@ 年齡 %d",@"通",18];
? ? //NSLog(@"%@",str1);
?? ?
? ? //1,2 創建,(便利構造器)
? ? NSString *str2 = [NSString stringWithFormat:@"我是 %@ 年齡 %d",@"通",19];
? ? //NSLog(@"%@",str2);
?? ?
? ? //1,3 簡便創建(字面量)
? ? NSString *s3 = @"abcd.mp3";
?? // NSLog(@"%@",s3);
?? ?
? ? //1,4 已有字符串創建
? ? NSString *s4 = [NSString stringWithString:s3];
? ? //NSLog(@"%@",s4);
?? ?
?? ?
? ? //2,長度
? ? NSLog(@"s3長度:%lu",s3.length);
?? ?
? ? //3,后綴
? ? if ([s3 hasSuffix:@"mp3"]) {
? ? ? ? NSLog(@"有 mp3 后綴");
? ? }
?? ?
? ? //4,1 截取
? ? NSString *s5 = [@"abcde" substringFromIndex:3];
? ? //NSLog(@"截取到結尾:%@",s5);
?
? ? //4,2 截取
? ? NSString *s6 = [@"abcde" substringToIndex:3];
? ? //NSLog(@"從頭截取:%@",s6);
?? ?
? ? //4,3 區域截取Range
? ? NSString *s7 = [@"abcde" substringWithRange:NSMakeRange(1, 3)];
? ? //NSLog(@"區域截取:%@",s7);
?? ?
? ? //4,4 獲取位置
? ? NSRange r = [@"abcdefg" rangeOfString:@"bcd"];
? ? NSLog(@"區域:%@", NSStringFromRange(r) );
?? ?
? ? //5,? 測試兩個字符串是否相等
? ? if ([@"ss" isEqualToString:@"ss"]) {
? ? ? ? NSLog(@"相同");
? ? }else{
? ? ? ? NSLog(@"不相同");
? ? }
?
? ? //6, 追加
? ? NSString *ss3 = [s3 stringByAppendingString:@"dddd"];
? ? NSLog(@"追加:%@",ss3);
?? ?
? ? //7, 替換
? ? NSString * ss4 = [s3 stringByReplacingOccurrencesOfString:@"abc" withString:@"***"];
?? ? NSLog(@"替換:%@",ss4);
?? ?
? ? //8, 比較
?? ? NSLog(@"比較:%d",(int)[@"aa" compare:@"aa"]);
?? ?
? ? //9,字符串轉數值類型
? ? NSInteger in1 = [@"123" intValue];
? ? CGFloat in2 = [@"1.2" floatValue];
? ? NSLog(@"替換:%f",in2);
?
?? //10, 大小寫轉換
? ? NSLog(@"%@",[@"ssd" uppercaseString]);
? ? NSLog(@"%@",[@"sGYH" lowercaseString]);
? ? NSLog(@"%@",[@"ssd" capitalizedString]);//首字母大寫
?
?
?
?
? ?//1,可變字符串
? ? NSMutableString *ms=[NSMutableString stringWithFormat:@"dkfj"];
? ? //插入
? ? [ms insertString:@"ni" atIndex:0];
? ? //追加
? ? [ms appendString:@"dd"];
? ? //刪除
? ? [ms deleteCharactersInRange:NSMakeRange(0,3)];
? ? //設置
? ? [ms setString:@"vv"];
? ? //
? ? NSLog(@"%@",ms);
?? ?
? ??
?