溫馨提示×

溫馨提示×

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

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

ios不可改變NSString類和可改變NSMutableString類的使用

發(fā)布時間:2020-06-30 13:02:34 來源:網(wǎng)絡(luò) 閱讀:677 作者:li你不知道 欄目:移動開發(fā)

一, NSString的常用用法
 
1,創(chuàng)建對象兩種方法
 
1)   ”-”號方法  alloc + 初始化
initWithString  
NSString *str = [[NSString alloc] initWithString:@"iPhone 4"];
 
 
initWithFormat  
這種方法比initWithString更強大可以設(shè)置格式,如上述的字符串” iPhone 4” 可以寫成
NSString *str = [[NSStringalloc] initWithFormat:@"iPhone%d",4];
這里的4是自定義的可以根據(jù)自己的需要隨時改變,
 
 
 
2)   這是構(gòu)造便利器
stringWithString
            NSString *str = [NSString stringWithString:@"iPhone5"];
 
stringWithFormat
同樣這種方法比stringWithString功能強大,可以設(shè)置輸出格式
            NSString *str = [NSString stringWithFormat:@"iPhone%d",5];
這里的5是自定義的可以根據(jù)自己的需要隨時改變
其實凡是方法名最后是以Format結(jié)尾的都是可以設(shè)置格式的,下面不在贅述
2,求字符串長度    length
 
     NSString *str = [NSString stringWithString:@"Helloworld];
     NSUInteger length = [str length];
     NSLog(@"length = %lu",length);
    這里長度應(yīng)設(shè)置為無符號長整型
3,根據(jù)給定的下標(biāo)獲取字符串中的字符
 
     NSString *str = [NSStringstringWithString:@"Hello world];
      unichar chara = [str characterAtIndex:5];
      NSLog(@"%c",chara);
 
4,判斷是否以指定的字符串開頭或者以指定的字符串結(jié)尾
    1),判斷一個字符串是否以某個字符串開頭  hasPrefix, 返回值為BOOL類 
          例如:判斷一個字符串是否以http開頭是否以.com結(jié)束
     NSString *str = [[NSString  alloc]initWithFormat:@"http://www.baidu.com"];
     判斷是否以http開頭
     BOOL  isPrefix = [str hasPrefix:@"http"];
      NSLog(@"%d",isPrefix);
2),判斷一個字符串是否以某個字符串結(jié)尾  hasSuffix, 返回值為BOOL類
   例如判斷一個字符串是否以.com結(jié)束
 
    BOOL isSuffix = [str hasSuffix:@".com"];
    NSLog(@"%d",isSuffix);
 
5,查找指定字符串的范圍
NSRange是結(jié)構(gòu)體類型的類型重定義,range是結(jié)構(gòu)體類型
NSRange range = [str4 rangeOfString:@"ttp"];
        if (range.length == 0) {
            NSLog(@"沒有找到對應(yīng)的字符串");
        } else {
           
            NSLog(@"location = %lu length = %lu",range.location,range.length);
        }
 
在這里我們可以看到輸出下標(biāo)要用到結(jié)構(gòu)體中結(jié)構(gòu)體變量訪問結(jié)構(gòu)體成員的比較麻煩,OC提供了一個方法NSStringFromRange將NSRange類型的結(jié)構(gòu)體變量轉(zhuǎn)變?yōu)樽址畬ο?/span>
            NSLog(@"%@",NSStringFromRange(range));
 
6,獲取子字符串
NSString *str = [[NSString  alloc]initWithFormat:@"http://www.baidu.com"];
 
        1)獲取給定下標(biāo)之后的子字串,包含指定下標(biāo)對應(yīng)的字符substringFromIndex
 
        NSString *str1 = [str substringFromIndex:5];
        NSLog(@"str1 = %@",str1);
       
        2)獲取從開始位置到給定下標(biāo)之前的子字符串,但是不包含指定下標(biāo)對應(yīng)的字符   substringToIndex 
        str1 = [str substringToIndex:7];
        NSLog(@"str1 = %@",str1);
        3)獲取從給定下標(biāo)范圍內(nèi)的子字符串,即按照所給出的位置,長度,任意地從字符串中截取子串  substringWithRange:
如: 獲取www
        str1 = [str substringWithRange:NSMakeRange(0, 3)];
        NSLog(@"str1 = %@",str1);
這里NSMakeRange(0, 3)快速給定結(jié)構(gòu)體變量ange里的下標(biāo)成員和長     度成員
 
7,拼接字符串
        NSString *str = [NSStringstringWithFormat:@"Lanou"];
       
        1)lanou后拼接henan  stringByAppendingString:
        NSString *newStr = [str stringByAppendingString:@"henan"];
        NSLog(@"newStr = %@",newStr);
       
        2) lanou后拼接henan9ban  stringByAppendingFormat:
        stringByAppendingFormat:比stringByAppendingString:功能強大,因為前者可以使用格式串,
        newStr = [str stringByAppendingFormat:@"9ban%@",newStr];
        NSLog(@"newStr = %@",newStr);
       
8,替換字符串
        NSString *str = [NSStringstringWithFormat:@"lanou is a big big big company"];
        1),將big替換成small  stringByReplacingOccurrencesOfString:
        NSString *newStr = [str stringByReplacingOccurrencesOfString:@"big"withString:@"small"];
        NSLog(@"newStr = %@",newStr);
在這里會將所有的big都換成small
 
        2),只將第一個big替換成small  stringByReplacingCharactersInRange:
        newStr = [str stringByReplacingCharactersInRange:NSMakeRange(11, 3) withString:@"small"];
       NSLog(@"newStr = %@",newStr);
       
  9,字符串比較  compare
        NSComparisonResult result =[@"111"compare:@"111"];
        NSLog(@"result = %ld",result);
這里結(jié)果只有三種1,0,-1,第一:按照降序,即前者大于后者,結(jié)果為1,第二:兩者相等,結(jié)果為0,第三:按照升序,前者小于后者,結(jié)果為-1,
10,字符串和數(shù)值類型轉(zhuǎn)換 
    1),將字符串"123" 轉(zhuǎn)換為整數(shù)123  intValue
 
       intValue方法從第一個字符開始讀取數(shù)字,如果在遇到了除空格之外的字符時,將前面的空格忽略掉,繼續(xù)往下找,讀取數(shù)字,直到遇到非數(shù)字時結(jié)束
        int value =  [@"   a1 2a3abc"intValue];
        NSLog(@"%d",value);
        float value1 = [@"   12a3abc"floatValue];
        NSLog(@"%.2f",value1);
    2),將數(shù)字轉(zhuǎn)為字符串對象
        NSString *str = [NSStringstringWithFormat:@"%f",5.2];
  11,字符串大小寫轉(zhuǎn)換
     1),將@"lan OU"全部轉(zhuǎn)換為大寫  uppercaseString
        NSString *upperStr = [@"lan OU iS a big coMpany"uppercaseString];
        NSLog(@"%@",upperStr);
       
       
     2),將@"lan OU"全部轉(zhuǎn)換為小寫   lowercaseString
        upperStr = [@"lan OU iS a big coMpany"lowercaseString];
        NSLog(@"%@",upperStr);
 
       
      3),將@"lan OU"每個單詞的首字母大寫   capitalizedString
        upperStr = [@"lan OU iS a big coMpany"capitalizedString];
        NSLog(@"%@",upperStr);
12,將C語言的字符串轉(zhuǎn)換為OC里的字符串對象  initWithUTF8String:
例如:
        char password[20] = {};  //定義一個密碼
        NSLog(@"請輸入密碼:");
        scanf("%s",password);
在這里先定義一個NSString類型的對象passWord用來接收從C語言的字符串password轉(zhuǎn)換的OC對象
        NSString *passWord= [[NSStringalloc] initWithUTF8String:password];


 
 
二,NSMutableString常用用法
 
  對可變字符串的增刪改方法,都是在原字符串的基礎(chǔ)上進行修改的,所有修改之后的原字符串的內(nèi)容發(fā)生了改變,所有無需返回值
由于字符串可改變,因此每一次操作后原字符串都改變?yōu)椴僮骱蟮淖址?/span>
1,創(chuàng)建一個可改變的字符串對象    stringWithFormat
        NSMutableString *str1 = [NSMutableStringstringWithFormat:@"lanouhenan"];
 
        1)在字符串str1基礎(chǔ)上拼接Frank
        [str1 appendFormat:@"%@",@"Frank"];
        NSLog(@"%@",str1);(輸出結(jié)果為:lanouhenanFrank)
 
        2)在字符串str1基礎(chǔ)上拼接Frank
        [str1 appendFormat:@"%@",@"Frank"];
        NSLog(@"%@",str1);(輸出結(jié)果為:lanouhenanFrankFrank)
       
        3)刪除字符串,   deleteCharactersInRange
                     在原字符串的基礎(chǔ)上刪除henan
        [str1 deleteCharactersInRange:NSMakeRange(5, 5)];
        NSLog(@"%@",str1); (輸出結(jié)果為:lanouFrankFrank)
 
        4) 插入字符串   insertString: atIndex:
                     在原字符串的基礎(chǔ)上插入lanou
        [str1 insertString:@";lanou"atIndex:0];
        NSLog(@"%@",str1); (輸出結(jié)果為:lanoulanouFrankFrank)
 
        5)在原字符串基礎(chǔ)上將第一個Frank替換成Duke;
        [str1 replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Duke"];
        NSLog(@"%@",str1); (輸出結(jié)果為:lanoulanoDukekFrank)   

 

向AI問一下細節(jié)

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

AI