Objective-C 筆記 字串操作,objective-c字串

來源:互聯網
上載者:User

Objective-C 筆記 字串操作,objective-c字串

  這次總結下OC裡一些對字串的一些操作。

  建立字串對象時,會建立一個內容不可更改的對象,稱為不可變對象。可以使用NSString類處理不可變字串。你經常需要處理字串並更改字串中的字元。例如,可能希望從字串中刪除一些字元,或對字串執行搜尋替換操作。這種類型的字串是使用NSMutableString類處理的。

 1 // 2 //  main.m 3 //  Number_String_List_15 4 // 5 //  Created by SeanAstin on 15/12/30. 6 //  Copyright © 2015年 SeanAstin. All rights reserved. 7 // 8  9 #import <Foundation/Foundation.h>10 11 int main(int argc, const char * argv[]) {12     @autoreleasepool {13         NSString *str1 = @"This is string A";14         NSString *str2 = @"This is string B";15         NSString *res;16         NSComparisonResult  compareResult;17         18         //計算字串中的值19         NSLog(@"Length of str1: %lu",[str1 length]);20         21         //將一個字串複製到另一個字串22         res = [NSString stringWithString:str1];23         NSLog(@"copy: %@",res);24         25         //將一個字串複製到另一個字串的末尾26         str2 = [str1 stringByAppendingString:str1];27         NSLog(@"Concatentation: %@",str2);28         29         //驗證兩個字串是否相等30         if([str1 isEqualToString:res] == YES)31             NSLog(@"str1 == res");32         else33             NSLog(@"str1 != res");34         35         //驗證一個字串是否小於、等於或大於另一個字串36         compareResult = [str1 compare:str2];37         if(compareResult ==  NSOrderedAscending)38             NSLog(@"str1 < str2");39         else if(compareResult == NSOrderedSame)40             NSLog(@"str1 == str2");41         else//必須是NSorderedDescending42             NSLog(@"str1 > str2");43         44         //將字串轉換為大寫45         res = [str1 uppercaseString];46         NSLog(@"Uppercase conversion: %s",[res UTF8String]);47         48         //將字串轉換為小寫49         res = [str1 lowercaseString];50         NSLog(@"Lowercase conversion: %@",res);51     }52     return 0;53 }

 

 

 1 // 2 //  main.m 3 //  Number_String_List_15 4 // 5 //  Created by SeanAstin on 15/12/30. 6 //  Copyright © 2015年 SeanAstin. All rights reserved. 7 // 8  9 #import <Foundation/Foundation.h>10 11 int main(int argc, const char * argv[]) {12     @autoreleasepool {13         NSString *str1 = @"This is string A";14         NSString *str2 = @"This is string B";15         NSString *res;16         NSRange subRange;17         18         //從字串中提取前3個字元19         res = [str1 substringToIndex:3];20         NSLog(@"First 3 chars of str1: %@",res);21         22         //提取從索引5開始直到結尾的子字串23         res = [str1 substringFromIndex:5];24         NSLog(@"Chars from index 5 of str1: %@",res);25         26         //提取從索引8開始索引到13的子字串(6個字元)27         res = [[str1 substringFromIndex:8] substringToIndex:6];28         NSLog(@"Chars from index 8 through 13: %@",res);29         30         //更簡單的方法31         res = [str1 substringWithRange:NSMakeRange(8, 6)];32         NSLog(@"Chars from index 8 through 13: %@",res);33         34         //從另一個字串中尋找一個字串35         subRange = [str1 rangeOfString:@"string A"];36         NSLog(@"String is at index %lu, length is %lu",subRange.location,subRange.length);37         subRange = [str1 rangeOfString:@"string B"];38         if(subRange.location == NSNotFound)39             NSLog(@"String not found");40         else41             NSLog(@"String is at index %lu, length is %lu",subRange.location,subRange.length);42         43     }44     return 0;45 }

 

  NSMutableString類可以用來建立可以更改字元的字串對象。因為是 NSString類的子類,所以可以使用NSString類的所有方法。

  在講述可變於不可變字串對象時,我們談到了更改字串中的實際字元。任意一個可變或不可變字串對象在程式執行期間,總是可以被設為完全不同的字串對象的。

 1 // 2 //  main.m 3 //  Number_String_List_15 4 // 5 //  Created by SeanAstin on 15/12/30. 6 //  Copyright © 2015年 SeanAstin. All rights reserved. 7 // 8  9 #import <Foundation/Foundation.h>10 11 int main(int argc, const char * argv[]) {12     @autoreleasepool {13         NSString *str1 = @"This is string A";14         NSString *search,*replace;15         NSMutableString *mstr;16         NSRange substr;17         18         //從不可變字串建立可變字串19         20         mstr = [NSMutableString stringWithString:str1];21         NSLog(@"%@",mstr);22         23         //插入字元24         [mstr insertString: @" mutable" atIndex:7];25         NSLog(@"%@",mstr);26         27         //插入末尾進行有效拼接28         [mstr insertString:@" and string B" atIndex:[mstr length]];29         NSLog(@"%@",mstr);30         31         //直接使用appendString32         [mstr appendString:@" and string C"];33         NSLog(@"%@",mstr);34         35         //根據範圍刪除子字串36         [mstr deleteCharactersInRange:NSMakeRange(16, 13)];37         NSLog(@"%@",mstr);38         39         //尋找然後將其刪除40         substr =  [mstr rangeOfString:@"string B and "];41         if(substr.location != NSNotFound){42             [mstr deleteCharactersInRange:substr];43             NSLog(@"%@",mstr);44         }45         46         //直接設定為可變的字串47         [mstr setString:@"This is string A"];48         NSLog(@"%@",mstr);49         50         //替換一些字元51         [mstr replaceCharactersInRange:NSMakeRange(8, 8) withString:@"a mutable string"];52         NSLog(@"%@",mstr);53         54         //尋找和替換55         search = @"This is";56         replace = @"An example";57         substr = [mstr rangeOfString: search];58         if(substr.location != NSNotFound){59             [mstr replaceCharactersInRange:substr withString:replace];60             NSLog(@"%@",mstr);61         }62         63         //尋找和替換所有匹配項64         search = @"a";65         replace = @"X";66         substr = [mstr rangeOfString:search];67         while(substr.location != NSNotFound){68             [mstr replaceCharactersInRange:substr withString:replace];69             substr = [mstr rangeOfString:search];70             71         }72         NSLog(@"%@",mstr);73     }74     return 0;75 }

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.