day4---字符串詳解

一、字符串的創(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);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容