標籤:
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,"[email protected]"];
-
- //字串賦值 參數中只可以寫一個字串 和第一種很像
- 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)
bjective-C 中核心處理字串的類是 NSString 與 NSMutableString