一、字符串的創(chuàng)建與轉(zhuǎn)換
1.通過對象方法創(chuàng)建
1)通過一個(gè)字符串去創(chuàng)建新的字符串
NSString *str2 = [[NSString alloc] initWithString:str1];
2)把C字符串轉(zhuǎn)換成OC字符串
NSString *str3 = [[NSString alloc] initWithUTF8String:"WHiOS1603"];
3)【重點(diǎn)】
通過格式符創(chuàng)建(拼接)字符串
NSString *str4 = [[NSString alloc] initWithFormat:@"%d-%.2f-%c-%s", 100,3.1415926,'Q',"QF"];
2.通過類方法創(chuàng)建字符串對象
1)通過一個(gè)字符串去創(chuàng)建新的字符串
NSString *str2 = [[NSString stringWithString:str1];
2)把C字符串轉(zhuǎn)換成OC字符串
NSString *str3 = [NSString stringWithUTF8String:"WHiOS1603"];
3)【重點(diǎn)】
通過格式符創(chuàng)建(拼接)字符串
NSString *str4 = [NSString stringWithFormat:@"%d-%.2f-%c-%s", 100,3.1415926,'Q',"QF"];
3.把OC字符串轉(zhuǎn)換成基礎(chǔ)數(shù)據(jù)類型
1)轉(zhuǎn)換成int類型
int a = str.intValue; 用%d打印
2)轉(zhuǎn)換成long類型 NSInteger 32->int 64->long
NSInteger integer = str.intValue 32位用%d打印,64位用%ld打印
3)轉(zhuǎn)換成BOOL類型
BOOL bl = str.boolValue; 用%d打印
4)把OC字符串轉(zhuǎn)換成C字符串
const char *s = [str UTF8String]; 用%s打印
5)返回字符串的長度
NSUInteger len = [str length]; 32->unsigned int 64->unsigned long
6)取出字符串中的單個(gè)字符,unichar就代表C語言中的char
unichar c = [str characterAtIndex:5];
二、字符串的查找和提取
1)字符串查找
NSRange range = [str1 rangeOfString:subStr1];
NSLog(@"location:%ld length:%ld", range.location,range.length);
//NSRange是一個(gè)結(jié)構(gòu)體,包含了location和length兩部分
//location子串在父串中的起始位置 length子串的長度
2)字符串提取
//從某個(gè)位置開始一直截取到某個(gè)字符串結(jié)尾
NSString *subStr2 = [str1 substringFromIndex:8]; //8代表從下標(biāo)為8的位置開始截取
//從開始位置截取,截取到某個(gè)位置(注:但不包含截取到的這個(gè)位置)
NSString *subStr3 = [str1 substringToIndex:4];
//截取一個(gè)字符串中的某個(gè)字符串
// NSRange rg = NSMakeRange(4, 6);
NSRange rg = {4,6};
NSString *subStr4 = [str1 substringWithRange:rg];
三、字符串大小比較 和 大小寫轉(zhuǎn)換
1)判斷兩個(gè)字符串是否相等(非常重要)
BOOL bl = [str1 isEqualToString:str2]; //返回的是bool值,進(jìn)行判斷
2)比較兩個(gè)字符串的大小
NSComparisonResult result = [str1 compare:str2]; //返回枚舉,進(jìn)行判斷
if (result == NSOrderedAscending) {
NSLog(@"str1小于str2");
}else if(result == NSOrderedSame){
NSLog(@"str1等于str2");
}else{
NSLog(@"str1大于str2");
}
3)不區(qū)分大小寫比較兩個(gè)字符串大小
NSComparisonResult result2 = [str1 caseInsensitiveCompare:str2];
if (result2 == NSOrderedAscending) {
NSLog(@"str1小于str2");
}else if(result2 == NSOrderedSame){
NSLog(@"str1等于str2");
}else{
NSLog(@"str1大于str2");
}
4)字符大小寫轉(zhuǎn)換
NSString *string = @"abcd123xyz";
//轉(zhuǎn)換常大寫
NSString *uppStr = [string uppercaseString];
NSLog(@"string = %@", uppStr);
//大寫轉(zhuǎn)小寫
NSString *lowStr = [uppStr lowercaseString];
NSLog(@"loeStr = %@", lowStr);
//首字母大寫,其余全部小寫
NSString *capStr = [string capitalizedString];
NSLog(@"capStr = %@", capStr);
5)判斷字符串的前后綴
NSString *string1 = @"qianfeng1603Class.txt";
NSString *preStr = @"qian";
NSString *suffStr = @".txt";
//1.判斷前綴
BOOL rect1 = [string1 hasPrefix:preStr];
if (rect1 ) {
NSLog(@"是前綴");
}else{
NSLog(@"不是前綴");
}
//2.判斷后綴
BOOL rect2 = [string1 hasSuffix:suffStr];
if (rect2) {
NSLog(@"是后綴");
}else{
NSLog(@"不是后綴");
}
6)字符串的各種拼接
NSString *string2 = @"Hello,Girl!";
NSString *newStr1 = [string2 stringByAppendingString:@" I Love You!!!"];
NSLog(@"newStr1 = %@", newStr1);
//2)格式符拼接
NSString *newStr2 = [string2 stringByAppendingFormat:@"%d,%@",999,@"玫瑰"];
NSLog(@"mewStr2 = %@", newStr2);
//3)拼接路徑(默認(rèn)加上/)
NSString *newStr3 = [string2 stringByAppendingPathComponent:@"love.ppt"];
NSLog(@"newStr3 = %@",newStr3);
四、可變字符串
1)創(chuàng)建
創(chuàng)建一個(gè)空的字符串
NSMutableString *mStr1 =[[NSMutableString alloc] init];
NSMutableString *mStr2 =[NSMutableString string];
創(chuàng)建一個(gè)預(yù)設(shè)大小的可變字符串
NSMutableString *mStr3 = [[NSMutableString alloc] initWithCapacity:20];
NSMutableString *mStr4 = [NSMutableString stringWithCapacity:10];
通過一個(gè)不可變字符串創(chuàng)建一個(gè)可變字符串
NSString *str =@"今天學(xué)習(xí)字符串";
NSMutableString *mStr5 = [[NSMutableString alloc] initWithString:str];
NSMutableString *mStr6 = [NSMutableString stringWithString:str];
2)增
//1.在指定的位置插入新的字符串
[mStr6 insertString:@"我們" atIndex:2];
NSLog(@"mStr6 = %@", mStr6);
//2.在原來的字符串的基礎(chǔ)上追加一個(gè)字符串
[mStr6 appendString:@"-寶寶不開心"];
NSLog(@"mStr6 = %@", mStr6);
//3.在原來的字符串的基礎(chǔ)上格式符追加
[mStr6 appendFormat:@"%s"," NSMutableString"];
NSLog(@"mStr6 = %@", mStr6);
3)刪除
//1.刪除指定范圍的字符串
NSRange range ={6,3};
[mStr6 deleteCharactersInRange:range];
NSLog(@"mStr6 = %@", mStr6);
4)修改
//1 替換掉指定范圍的字符串
NSRange range1 = {0,2};
[mStr6 replaceCharactersInRange:range1 withString:@"現(xiàn)在"];
NSLog(@"mStr6 = %@", mStr6);
//2.直接用用一個(gè)新字符串全部替換掉原來的字符串
NSString *newStr = @"一切都是浮云";
[mStr6 setString:newStr];
NSLog(@"mStr6 = %@", mStr6);