溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ios不可改變NSString類(lèi)和可改變NSMutableString類(lèi)的使用  

發(fā)布時(shí)間:2020-04-08 14:17:25 來(lái)源:網(wǎng)絡(luò) 閱讀:340 作者:li你不知道 欄目:移動(dòng)開(kāi)發(fā)



               

   

ios不可改NSString類(lèi)和可改NSMutableString類(lèi)的使用

 

, NSString的常用用法

 

1,創(chuàng)建對(duì)象兩種方法

 

1)   ”-”號(hào)方法  alloc + 初始化

關(guān)鍵詞 initWithString 與 initWithFormat


例如 NSString *str = [[NSString alloc] initWithString:@"iPhone 4"];

initWithFormat 方法 initWithString 方法 更強(qiáng)大,可以設(shè)置格式,如上述的字符串” iPhone 4” 可以寫(xiě)成

NSString *str = [[NSStringalloc] initWithFormat:@"iPhone%d",4];

這里的4是自定義的可以根據(jù)自己的需要隨時(shí)改變,

 

2)   這是構(gòu)造便利器 關(guān)鍵詞stringWithString 與 tringWithFormat

      例如      NSString *str = [NSString stringWithString:@"iPhone5"];

stringWithFormat 方法比 stringWithString功能強(qiáng)大,可以設(shè)置輸出格式

      例如      NSString *str = [NSString stringWithFormat:@"iPhone%d",5];

注釋 : 這里的5是自定義的可以根據(jù)自己的需要隨時(shí)改變

其實(shí)凡是方法名最后是以Format結(jié)尾的都是可以設(shè)置格式的,下面不在贅述

2,求字符串長(zhǎng)度   關(guān)鍵詞 length

 

     NSString *str = [NSString stringWithString:@"Helloworld];

     NSUInteger length = [str length];

     NSLog(@"length = %lu",length);

    這里長(zhǎng)度應(yīng)設(shè)置為無(wú)符號(hào)長(zhǎng)整型

3,根據(jù)給定的下標(biāo)獲取字符串中的字符 關(guān)鍵詞 characterAtIndex

 

     NSString *str = [NSStringstringWithString:@"Hello world];

      unichar chara = [str characterAtIndex:5];

      NSLog(@"%c",chara);

 

4,判斷是否以指定的字符串開(kāi)頭或者以指定的字符串結(jié)尾

    1),判斷一個(gè)字符串是否以某個(gè)字符串開(kāi)頭 關(guān)鍵詞 hasPrefix, 返回值為BOOL類(lèi) 

          例如  判斷一個(gè)字符串是否以http開(kāi)頭是否以.com結(jié)束

     NSString *str = [[NSString  alloc]initWithFormat:@"http://www.baidu.com"];

     判斷是否以http開(kāi)頭

     BOOL  isPrefix = [str hasPrefix:@"http"];

      NSLog(@"%d",isPrefix);

2),判斷一個(gè)字符串是否以某個(gè)字符串結(jié)尾 關(guān)鍵詞 hasSuffix, 返回值為BOOL類(lèi)

   例如  判斷一個(gè)字符串是否以.com結(jié)束

 

    BOOL isSuffix = [str hasSuffix:@".com"];

    NSLog(@"%d",isSuffix);

 

5,查找指定字符串的范圍 關(guān)鍵詞  rangeOfString

NSRange是結(jié)構(gòu)體類(lèi)型的類(lèi)型重定義,range是結(jié)構(gòu)體類(lèi)型

NSRange range = [str4 rangeOfString:@"ttp"];

        if (range.length == 0) {

            NSLog(@"沒(méi)有找到對(duì)應(yīng)的字符串");

        } else {

           

            NSLog(@"location = %lu length = %lu",range.location,range.length);

        }

 

在這里我們可以看到輸出下標(biāo)要用到結(jié)構(gòu)體中結(jié)構(gòu)體變量訪問(wèn)結(jié)構(gòu)體成員的比較麻煩,OC提供了一個(gè)方法NSStringFromRangeNSRange類(lèi)型的結(jié)構(gòu)體變量轉(zhuǎn)變?yōu)樽址畬?duì)象

            NSLog(@"%@",NSStringFromRange(range));

 

6,獲取子字符串

NSString *str = [[NSString  alloc]initWithFormat:@"http://www.baidu.com"];

 

        1)獲取給定下標(biāo)之后的子字串,包含指定下標(biāo)對(duì)應(yīng)的字符 關(guān)鍵詞substringFromIndex

 

        NSString *str1 = [str substringFromIndex:5];

        NSLog(@"str1 = %@",str1);

       

        2)獲取從開(kāi)始位置到給定下標(biāo)之前的子字符串,但是不包含指定下標(biāo)對(duì)應(yīng)的字符  關(guān)鍵詞  substringToIndex 

        str1 = [str substringToIndex:7];

        NSLog(@"str1 = %@",str1);

        3)獲取從給定下標(biāo)范圍內(nèi)的子字符串,即按照所給出的位置,長(zhǎng)度,任意地從字符串中截取子串  關(guān)鍵詞 substringWithRange:

: 獲取www

        str1 = [str substringWithRange:NSMakeRange(0, 3)];

        NSLog(@"str1 = %@",str1);

這里NSMakeRange(0, 3)快速給定結(jié)構(gòu)體變量ange里的下標(biāo)成員和長(zhǎng)     度成員

 

7,拼接字符串 關(guān)鍵詞  stringByAppendingString: 與 stringByAppendingFormat:

      例如

      NSString *str = [NSStringstringWithFormat:@"Lanou"];

       

        1)lanou后拼接henan  stringByAppendingString:

        NSString *newStr = [str stringByAppendingString:@"henan"];

        NSLog(@"newStr = %@",newStr);

       

        2) lanou后拼接henan9ban 

        stringByAppendingFormat:stringByAppendingString:功能強(qiáng)大,因?yàn)榍罢呖梢允褂酶袷酱?/span>,

        newStr = [str stringByAppendingFormat:@"9ban%@",newStr];

        NSLog(@"newStr = %@",newStr);

       

8,替換字符串 關(guān)鍵詞 stringByReplacingOccurrencesOfString:

        NSString *str = [NSStringstringWithFormat:@"lanou is a big big big company"];

        1),big替換成small 

stringByReplacingOccurrencesOfString:@"big"withString:@"small"];

        NSLog(@"newStr = %@",newStr);

在這里會(huì)將所有的big都換成small

 

        2),只將第一個(gè)big替換成small  關(guān)鍵詞stringByReplacingCharactersInRange:

        newStr = [str stringByReplacingCharactersInRange:NSMakeRange(11, 3) withString:@"small"];

       NSLog(@"newStr = %@",newStr);

       

  9,字符串比較  關(guān)鍵詞 compare

        NSComparisonResult result =[@"111"compare:@"111"];

        NSLog(@"result = %ld",result);

這里結(jié)果只有三種1,0,-1,第一:按照降序,即前者大于后者,結(jié)果為1,第二:兩者相等,結(jié)果為0,第三:按照升序,前者小于后者,結(jié)果為-1,

10,字符串和數(shù)值類(lèi)型轉(zhuǎn)換 

    1),將字符串"123" 轉(zhuǎn)換為整數(shù)123  intValue

 

       intValue方法從第一個(gè)字符開(kāi)始讀取數(shù)字,如果在遇到了除空格之外的字符時(shí),將前面的空格忽略掉,繼續(xù)往下找,讀取數(shù)字,直到遇到非數(shù)字時(shí)結(jié)束

        int value =  [@"   a1 2a3abc"intValue];

        NSLog(@"%d",value);

        float value1 = [@"   12a3abc"floatValue];

        NSLog(@"%.2f",value1);

    2),將數(shù)字轉(zhuǎn)為字符串對(duì)象

        NSString *str = [NSStringstringWithFormat:@"%f",5.2];

  11,字符串大小寫(xiě)轉(zhuǎn)換

     1),@"lan OU"全部轉(zhuǎn)換為大寫(xiě) 關(guān)鍵詞  uppercaseString

        NSString *upperStr = [@"lan OU iS a big coMpany"uppercaseString];

        NSLog(@"%@",upperStr);

       

       

     2),@"lan OU"全部轉(zhuǎn)換為小寫(xiě)  關(guān)鍵詞  lowercaseString

        upperStr = [@"lan OU iS a big coMpany"lowercaseString];

        NSLog(@"%@",upperStr);

 

       

      3),@"lan OU"每個(gè)單詞的首字母大寫(xiě)  關(guān)鍵詞 capitalizedString

        upperStr = [@"lan OU iS a big coMpany"capitalizedString];

        NSLog(@"%@",upperStr);

12,將C語(yǔ)言的字符串轉(zhuǎn)換為OC里的字符串對(duì)象 關(guān)鍵詞 initWithUTF8String:

例如:

        char password[20] = {};  //定義一個(gè)密碼

        NSLog(@"請(qǐng)輸入密碼:");

        scanf("%s",password);

在這里先定義一個(gè)NSString類(lèi)型的對(duì)象passWord用來(lái)接收從C語(yǔ)言的字符串password轉(zhuǎn)換的OC對(duì)象

        NSString *passWord= [[NSStringalloc] initWithUTF8String:password];



 

 

,NSMutableString常用用法

 

  對(duì)字符串的增刪改方法,都是在原字符串的基礎(chǔ)進(jìn)行修改的,所有修改之后的原字符串的內(nèi)容發(fā)生了改,所有無(wú)需返回

由于字符串可改變,因此每一次操作后原字符串都改變?yōu)椴僮骱蟮淖址?/span>

1,創(chuàng)建一個(gè)可改變的字符串對(duì)象    關(guān)鍵詞 stringWithFormat

例如:        NSMutableString *str1 = [NSMutableStringstringWithFormat:@"lanouhenan"];

 2.字符串拼接

        例如 :在字符串str1礎(chǔ)上拼接Frank

        [str1 appendFormat:@"%@",@"Frank"];

        NSLog(@"%@",str1);(輸出結(jié)果為:lanouhenanFrank)

 

        3.除字符串.   關(guān)鍵詞  deleteCharactersInRange

              例如       在原字符串的基礎(chǔ)henan

        [str1 deleteCharactersInRange:NSMakeRange(5, 5)];

        NSLog(@"%@",str1); (輸出結(jié)果為:lanouFrank)

 

        4) 插入字符串  關(guān)鍵詞 insertString: atIndex:

              例如       在原字符串的基礎(chǔ)上插入lanou

        [str1 insertString:@";lanou"atIndex:0];

        NSLog(@"%@",str1); (輸出結(jié)果為:lanoulanouFrank)

 

        5)在原字符串基礎(chǔ)上將替換其中一個(gè)對(duì)象  關(guān)鍵詞replaceCharactersInRange

例如  在原字符串基礎(chǔ)上將FrankDuke;

        [str1 replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Duke"];

        NSLog(@"%@",str1); (輸出結(jié)果為:lanoulanoDuke)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI