bjective-C 中核心處理字串的類是 NSString 與 NSMutableString

來源:互聯網
上載者:User

標籤:

 

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

 

 

1.建立經典的NSString字串

 

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

 

 

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.     //經典的字串賦值  
  6.     NSString *str0 = @"我是雨松MOMO";  
  7.       
  8.     //字串格式化合并分別包括  
  9.     //NSString*類型 int類型 char*類型   
  10.     NSString *str1 = [NSString stringWithFormat:@"我的名字:%@ 我的年齡:%d 我的郵箱:%s",@"雨松MOMO", 25,"[email protected]"];  
  11.       
  12.     //字串賦值 參數中只可以寫一個字串 和第一種很像  
  13.     NSString *str2 = [NSString stringWithString:@"我是字串"];  
  14.      
  15.     //字串轉換為utf-8格式 參數為char*類型  
  16.     NSString *str3 = [NSString stringWithUTF8String:"字串轉換utf-8格式"];  
  17.       
  18.       
  19.     //字串合并  
  20.     int i  = 100;  
  21.     char*c = "xuanyusong";  
  22.     NSString *temp = @"我是臨時字串";  
  23.       
  24.     //在字串temp的基礎繼續添加 int i 與 char* c 組成一個新的字串  
  25.     NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字元型 :%s",i,c];  
  26.       
  27.     //在字串temp的基礎繼續添加temp 並組成一個新的字串  
  28.     NSString *str5 = [temp stringByAppendingString:temp];   
  29.       
  30.     //字串輸出  
  31.     NSLog(@"str0 = %@", str0);  
  32.     NSLog(@"str1 = %@", str1);  
  33.     NSLog(@"str2 = %@", str2);  
  34.     NSLog(@"str3 = %@", str3);  
  35.     NSLog(@"str4 = %@", str4);  
  36.     NSLog(@"str5 = %@", str5);  
  37.       
  38. }  

 

 

 

 

 

2.字串的遍曆

 

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

 

 

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.     //經典的字串賦值  
  6.     NSString *str = @"YUSONGMOMO";  
  7.       
  8.     //字串的長度  
  9.     int count = [str length];  
  10.       
  11.     NSLog(@"字串的長度是%d",count);  
  12.       
  13.     //遍曆字串中的每一個字元  
  14.     for(int i =0; i < count; i++)  
  15.     {  
  16.         char c = [str characterAtIndex:i];  
  17.         NSLog(@"字串第 %d 位為 %c",i,c);  
  18.     }  
  19.       
  20. }  

 

 

 

 

 

3.字串的比較

 

isEqualToString 比較字串是否完全相等,大小寫不一樣也無法完全符合。

hasPrefixe 匹配字串頭

haSuffix     匹配字串的尾巴

 

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.       
  6.     NSString *str0 = @"雨松MOMO";  
  7.     NSString *str1 = @"雨松MOMO";  
  8.       
  9.       
  10.     //字串完全相等比較  
  11.     if([str0 isEqualToString:str1])  
  12.     {  
  13.         NSLog(@"字串完全相等");  
  14.     }  
  15.       
  16.     //字串以開頭比較  
  17.     if([str0 hasPrefix:@"雨松"])  
  18.     {  
  19.         NSLog(@"字串str0以雨鬆開頭");  
  20.     }  
  21.       
  22.     //字串以結尾比較  
  23.     if([str1 hasSuffix:@"MOMO"])  
  24.     {  
  25.         NSLog(@"str1字串以MOMO結尾");  
  26.     }  
  27. }  

 

 

 

 

 

4.字串的截取與大小寫改變

 

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.       
  6.     NSString *str0 = @"中文my name is xuanyusong";  
  7.       
  8.     //截取字串起始點到index為4之間的內容  
  9.     NSString * to = [str0 substringToIndex:4];  
  10.       
  11.     NSLog(@"to = %@",to);  
  12.       
  13.     //截取字元index為2 到結尾之間的內容  
  14.     NSString * from = [str0 substringFromIndex:2];  
  15.       
  16.     NSLog(@"from = %@",from);  
  17.       
  18.       
  19.     //設定截取字串的範圍   
  20.     //從第二位到第十位  
  21.     NSRange rang = NSMakeRange(2, 10);  
  22.     NSString * strRang = [str0 substringWithRange:rang];  
  23.     NSLog(@"rang = %@",strRang);  
  24.       
  25.     //設定字串首字母大寫  
  26.     NSLog(@"str0首字母大寫:%@",[str0 capitalizedString]);  
  27.     //設定字串全部內容為大寫  
  28.     NSLog(@"str0大寫:%@",[str0 uppercaseString]);  
  29.     //設定字元全部內容為小寫  
  30.     NSLog(@"str0小寫:%@",[str0 lowercaseString]);  
  31.       
  32. }  

 

 

 

 

 

5.搜尋字串與替換字串

 

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.       
  6.     NSString *str0 = @"中文my name is xuanyusong";  
  7.     NSString *temp = @"is";  
  8.     NSRange rang = [str0 rangeOfString:temp];  
  9.       
  10.     NSLog(@"搜尋的字串在str0中起始點的index 為 %d", rang.location);  
  11.     NSLog(@"搜尋的字串在str0中結束點的index 為 %d", rang.location + rang.length);  
  12.       
  13.     //將搜尋中的字串替換成為一個新的字串  
  14.     NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@"哇哢哢卡卡哢"];   
  15.     NSLog(@"替換後字串為%@", str);  
  16.   
  17.       
  18.     //將字串中" " 全部替換成 *  
  19.     str = [str0 stringByReplacingOccurrencesOfString :@" " withString:@"@"];   
  20.     NSLog(@"替換後字串為%@", str);  
  21.       
  22.       
  23. }  

 

 

 

拓展:使用下面這個方法整體替換字串還可以設定替換的地區。 ons:<#(NSStringCompareOptions)#> range:<#(NSRange)#>

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

 

 

 

 

bjective-C 中核心處理字串的類是 NSString 與 NSMutableString

聯繫我們

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