NSString、NSMutableString基本用法
NSString其實是一個對象類型。NSString是NSObject(Cocoa Foundation的基礎對象)的子類
一、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);
7、寫字符串到文件:writeToFile方法
NSString *astring?=?[[NSString alloc] initWithString:@"This is a String!"];
NSLog(@"astring:%@",astring);
NSString *path?=?@"astring.text";
[astring writeToFile: path atomically: YES];
[astring release];
8、從文件讀取字符串:initWithContentsOfFile方法
NSString *path?=?@"astring.text";
NSString *astring?=?[[NSString alloc] initWithContentsOfFile:path];
NSLog(@"astring:%@",astring);
[astring release];
二、字符串的比較
1、用C比較:strcmp函數
char string1[]?=?"string!";
char string2[]?=?"string!";
if(strcmp(string1, string2)?=?= 0)
{
NSLog(@"1");
}
2、isEqualToString方法
NSString *astring01?=?@"This is a String!";
NSString *astring02?=?@"This is a String!";
BOOL result =?[astring01 isEqualToString:astring02];
NSLog(@"result:%d",result);
3、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 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);
P.S : 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];
五、字符串的截取
1.-substringToIndex:?從字符串的開頭一直截取到指定的位置,但不包括該位置的字符
NSString *string1?=?@"This is a string";
NSString *string2?=?[string1 substringToIndex:3];
NSLog(@"string2:%@",string2);
2.-substringFromIndex:?以指定位置開始(包括指定位置的字符),并包括之后的全部字符
NSString *string1?=?@"This is a string";
NSString *string2?=?[string1 substringFromIndex:3];
NSLog(@"string2:%@",string2);
3.-substringWithRange:?//按照所給出的位置,長度,任意地從字符串中截取子串
NSString *string1?=?@"This is a string";
NSString *string2?=?[string1 substringWithRange:NSMakeRange(0, 4)];
NSLog(@"string2:%@",string2);
4.截取NSString最后一位符號后的東西
方法1.
NSString *str?=?@"/Users/yangiori/Library/Application Support/iPhone Simulator/5.1/Applicati*****/8724956B-407E-4ACD-BBA6-95C7D033C33D/Documents/content/chapters/8";
NSString *temp1?=?[[str componentsSeparatedByString:@"/"] lastObject];
NSLog(@"%@",temp1);
結果:8
方法2.
NSString
*str?=?@"/Users/yangiori/Library/Application Support/iPhone
Simulator/5.1/Applicati*****/8724956B-407E-4ACD-BBA6-95C7D033C33D/Documents/content/chapters/8";
NSString *temp2?=?[str substringFromIndex:[str length]-1];
NSLog(@"%@",temp2);
結果:8
5.從指定位置截取字符串
NSString * str =[NSString stringWithFormat:@"********************Documents/image%i.jpg",2];
NSRange range =?[str rangeOfString:@"Documents"];
NSString * result =?[str substringFromIndex:range.location];
NSLog(@"%@",result);
六、其他操作
1.擴展路徑
NSString *Path?=?@"~/NSData.txt";
NSString *absolutePath?=?[Path stringByExpandingTildeInPath];
NSLog(@"absolutePath:%@",absolutePath);
NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);
2.文件擴展名
NSString *Path?=?@"~/NSData.txt";
NSLog(@"Extension:%@",[Path pathExtension]);
NSMutableString
基本用法
1.給字符串分配容量
stringWithCapacity:
NSMutableString *String;
String =?[NSMutableString stringWithCapacity:40];
2.在已有字符串后面添加字符
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);
3.在已有字符串中按照所給出范圍和長度刪除字符
deleteCharactersInRange:
NSMutableString *String1?=?[[NSMutableString alloc] initWithString:@"This is a NSMutableString"];
[String1 deleteCharactersInRange:NSMakeRange(0, 5)];
NSLog(@"String1:%@",String1);
4.在已有字符串后面在所指定的位置中插入給出的字符串
-insertString: atIndex:
NSMutableString *String1?=?[[NSMutableString alloc] initWithString:@"This is a NSMutableString"];
[String1 insertString:@"Hi!?" atIndex:0];
NSLog(@"String1:%@",String1);
5.將已有的空符串換成其它的字符串
-setString:
NSMutableString *String1?=?[[NSMutableString alloc] initWithString:@"This is a NSMutableString"];
[String1 setString:@"Hello Word!"];
NSLog(@"String1:%@",String1);
6.按照所給出的范圍,和字符串替換的原有的字符
-setString:
NSMutableString *String1?=?[[NSMutableString alloc] initWithString:@"This is a NSMutableString"];
[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];
NSLog(@"String1:%@",String1);
7.判斷字符串內是否還包含別的字符串(前綴,后綴)
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,這一點前面在串中搜索子串用到過;
(內容均來自于各大IT論壇)