Objective-C文法之NSString字串的那些事兒(三)

來源:互聯網
上載者:User
 Objective-C文法之字串那些事

雨松MOMO原創文章如轉載,請註明:轉載至我的獨立網域名稱部落格雨松MOMO程式研究院,原文地址:http://www.xuanyusong.com/archives/381

Objective-C 中核心處理字串的類是 NSString 與 NSMutableString ,這兩個類最大的區別就是NSString 建立賦值以後該字串的內容與長度不能在動態更改,除非重新給這個字串賦值。而NSMutableString 建立賦值以後可以動態在該字串上更改內容與長度。

1.建立經典的NSString字串
NSString 與 char* 最大的區別就是 NSString是一個objective對象,而char* 是一個位元組數組。 @+ " 字串 " 這個符號為objective-c NSString 字串常量的標準用法,char* 建立的時候 無需添加@

- (void)viewDidLoad{    [super viewDidLoad];        //經典的字串賦值    NSString *str0 = @"我是雨松MOMO";        //字串格式化合并分別包括    //NSString*類型 int類型 char*類型     NSString *str1 = [NSString stringWithFormat:@"我的名字:%@ 我的年齡:%d 我的郵箱:%s",@"雨松MOMO", 25,"xuanyusong@gmail.com"];        //字串賦值 參數中只可以寫一個字串 和第一種很像    NSString *str2 = [NSString stringWithString:@"我是字串"];       //字串轉換為utf-8格式 參數為char*類型    NSString *str3 = [NSString stringWithUTF8String:"字串轉換utf-8格式"];            //字串合并    int i  = 100;    char*c = "xuanyusong";    NSString *temp = @"我是臨時字串";        //在字串temp的基礎繼續添加 int i 與 char* c 組成一個新的字串    NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字元型 :%s",i,c];        //在字串temp的基礎繼續添加temp 並組成一個新的字串    NSString *str5 = [temp stringByAppendingString:temp];         //字串輸出    NSLog(@"str0 = %@", str0);    NSLog(@"str1 = %@", str1);    NSLog(@"str2 = %@", str2);    NSLog(@"str3 = %@", str3);    NSLog(@"str4 = %@", str4);    NSLog(@"str5 = %@", str5);    }



2.字串的遍曆
每一個字串其實是由若干個char字元組成,字串的遍曆實際上就是將字串中的每一個字元提取出來。

- (void)viewDidLoad{    [super viewDidLoad];        //經典的字串賦值    NSString *str = @"YUSONGMOMO";        //字串的長度    int count = [str length];        NSLog(@"字串的長度是%d",count);        //遍曆字串中的每一個字元    for(int i =0; i < count; i++)    {        char c = [str characterAtIndex:i];        NSLog(@"字串第 %d 位為 %c",i,c);    }    }



3.字串的比較
isEqualToString 比較字串是否完全相等,大小寫不一樣也無法完全符合。 hasPrefixe 匹配字串頭 haSuffix     匹配字串的尾巴
- (void)viewDidLoad{    [super viewDidLoad];            NSString *str0 = @"雨松MOMO";    NSString *str1 = @"雨松MOMO";            //字串完全相等比較    if([str0 isEqualToString:str1])    {        NSLog(@"字串完全相等");    }        //字串以開頭比較    if([str0 hasPrefix:@"雨松"])    {        NSLog(@"字串str0以雨鬆開頭");    }        //字串以結尾比較    if([str1 hasSuffix:@"MOMO"])    {        NSLog(@"str1字串以MOMO結尾");    }}



4.字串的截取與大小寫改變
- (void)viewDidLoad{    [super viewDidLoad];            NSString *str0 = @"中文my name is xuanyusong";        //截取字串起始點到index為4之間的內容    NSString * to = [str0 substringToIndex:4];        NSLog(@"to = %@",to);        //截取字元index為2 到結尾之間的內容    NSString * from = [str0 substringFromIndex:2];        NSLog(@"from = %@",from);            //設定截取字串的範圍     //從第二位到第十位    NSRange rang = NSMakeRange(2, 10);    NSString * strRang = [str0 substringWithRange:rang];    NSLog(@"rang = %@",strRang);        //設定字串首字母大寫    NSLog(@"str0首字母大寫:%@",[str0 capitalizedString]);    //設定字串全部內容為大寫    NSLog(@"str0大寫:%@",[str0 uppercaseString]);    //設定字元全部內容為小寫    NSLog(@"str0小寫:%@",[str0 lowercaseString]);    }



5.搜尋字串與替換字串
- (void)viewDidLoad{    [super viewDidLoad];            NSString *str0 = @"中文my name is xuanyusong";    NSString *temp = @"is";    NSRange rang = [str0 rangeOfString:temp];        NSLog(@"搜尋的字串在str0中起始點的index 為 %d", rang.location);    NSLog(@"搜尋的字串在str0中結束點的index 為 %d", rang.location + rang.length);        //將搜尋中的字串替換成為一個新的字串    NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@"哇哢哢卡卡哢"];     NSLog(@"替換後字串為%@", str);        //將字串中" " 全部替換成 *    str = [str0 stringByReplacingOccurrencesOfString :@" " withString:@"@"];     NSLog(@"替換後字串為%@", str);        }

拓展:使用下面這個方法整體替換字串還可以設定替換的地區。

ons:<#(NSStringCompareOptions)#> range:<#(NSRange)#>

stringByReplacingOccurrencesOfString:(NSString *)withString:(NSString *) options:(NSStringCompareOptions) range:(NSRange)





這一篇主要介紹NSString 類的使用  下面篇詳細介紹NSMutableString類,大小盆友們要支援MOMO喔 嘻嘻~~~


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.