搬博客真是件體力活,將以前的博客重新閱讀、刪減悠轩、編輯悦析,費時費力。但同時也是一個提高的過程,累并快樂著,繼續(xù)
項目中用到NSString的幾個方法,發(fā)現(xiàn)自己對NSString的方法認識的還不系統(tǒng)不完全垮庐,利用閑暇時間整理下一些基礎(chǔ)NSString方法,持續(xù)更新。
創(chuàng)建NSString字符串
NSString 與 char最大的區(qū)別就是 NSString是一個objective對象,而char是一個數(shù)據(jù)類型乎澄。@這個符號為objective-c NSString 字符串常量的標準用法突硝,char* 創(chuàng)建的時候無需添加@
在字符串temp的基礎(chǔ)繼續(xù)添加 int i 與 char* c 組成一個新的字符串
NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字符型 :%s",i,c];
在字符串temp的基礎(chǔ)繼續(xù)添加temp 并組成一個新的字符串
NSString *str5 = [temp stringByAppendingString:temp];
字符串的遍歷
每一個字符串其實是由若干個char字符組成,字符串的遍歷實際上就是將字符串中的每一個字符提取出來置济。
NSString *str = @"TEST";
int count = [str length];
//遍歷字符串中的每一個字符
for(int i =0; i < count; i++)
{ char c = [str characterAtIndex:i];
NSLog(@"字符串第 %d 位為 %c",i,c);
}
字符串的比較
isEqualToString方法 :比較字符串是否完全相等解恰,大小寫不一樣也無法完全匹配。
hasPrefixe方法:匹配字符串頭
haSuffix方法:匹配字符串的尾巴
NSString *str0 = @"testcoding";
NSString *str1 = @"testcoding";
if([str0 isEqualToString:str1])
{
NSLog(@"字符串完全相等");
}
if([str0 hasPrefix:@"test"])
{
NSLog(@"字符串str0以test開頭");
}
if([str1 hasSuffix:@"coding"])
{
NSLog(@"str1字符串以coding結(jié)尾");
}
考慮大小寫 比較字符串
NSString *string01 = @"this is a String";
NSString *string02 = @"This is a String";
BOOL result = [string01 compare:string02] = = NSOrderedDescending;
NSLog(@"result:%d",result);
//字符串對比:NSOrderedAscending(升序),NSOrderedSame(同序),NSOrderedDescending(降序)
//NSOrderedDescending 判斷兩對象值的大小(按字母順序進行比較浙于,string02小于string01為真)
不考慮大小寫比較字符串
NSString *string01 = @"this is a String!";
NSString *string02 = @"This is a String!";
BOOL result = [string01 compare:string02
options:NSCaseInsensitiveSearch | NSNumericSearch] = = NSOrderedSame;
NSLog(@"result:%d",result);
//NSCaseInsensitiveSearch:不區(qū)分大小寫比較 NSLiteralSearch:進行完全比較护盈,區(qū)分大小寫 NSNumericSearch:比較字符串的字符個數(shù),而不是字符值羞酗。
//判斷的方法可以利用 NSString 類別中 caseInsensitiveCompare: 所回傳 -1腐宋、0 或是 1 的數(shù)值,判定兩個字串之間得排序關(guān)系
字符串改寫大小寫
NSString *string1 = @"A String";
NSString *string2 = @"String";
NSLog(@"string1:%@",[string1 uppercaseString]);//大寫
NSLog(@"string2:%@",[string2 lowercaseString]);//小寫
NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大寫
截取字符串
NSString *str0 = @"nice to meet you"; //截取字符串起始點到index為5之間的內(nèi)容
NSString * to = [str0 substringToIndex:5];
NSLog(@"to = %@",to); //截取字符index為2 到結(jié)尾之間的內(nèi)容
NSString * from = [str0 substringFromIndex:2];
NSLog(@"from = %@",from);
NSRange rang = NSMakeRange(2, 10);
NSString * strRang = [str0 substringWithRange:rang];
NSLog(@"rang = %@",strRang);
搜索字符串與替換字符串
NSString *str0 = @“nice to meet you";
NSString *temp = @"meet";
NSRange rang = [str0 rangeOfString:temp];
NSLog(@"搜索的字符串在str0中起始點的index 為 %d", rang.location);
NSLog(@"搜索的字符串在str0中結(jié)束點的index 為 %d", rang.location + rang.length);
將搜索中的字符串替換成為一個新的字符串
NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@"met"];
NSLog(@"替換后字符串為%@", str);
//將字符串中" " 全部替換成 *
str = [str0 stringByReplacingOccurrencesOfString :@" " withString:@"@"];
NSLog(@"替換后字符串為%@", str);
使用下面這個方法整體替換字符串還可以設(shè)置替換的區(qū)域檀轨。
stringByReplacingOccurrencesOfString:(NSString *)withString:(NSString *) options:(NSStringCompareOptions) range:(NSRange)
字符串尾部添加
appendstring 方法:向字符串尾部添加一個字符串胸竞。
appendFormat方法:向字符串尾部添加多個類型的字符串,可以添加任意數(shù)量與類型的字符串参萄。
NSMutableString * str = [[NSMutableString alloc] init]; //添加普通的字符串
[str appendString:@"hello"];
字符串中刪除元素
stringWithString 方法:用于創(chuàng)建字符串初始化賦值
rangeOfString方法:傳入字符串返回一個在該字符串中的范圍 也可以寫 NSMakeRange(0, 3) 意思是范圍在字符串0位到第3位
deleteCharactersInRange:刪除字符串 參數(shù)為Range 就是刪除的范圍卫枝。
NSMutableString *str = [NSMutableString stringWithString:@"nice to meet you"];
[str deleteCharactersInRange: [str rangeOfString: @"meet"]];
NSLog(@"str = %@",str);
字符串插入
stringWithString 方法:用于創(chuàng)建字符串初始化賦值
insertString方法:第一個參數(shù) 插入的字符串對象, 第二個參數(shù) 插入的位置讹挎。
NSMutableString *str = [NSMutableString stringWithString:@"nice to meet"];
//在str第10位插入字符串
[str insertString:@"you" atIndex:10];
NSLog(@"str = %@",str);