標籤:
Objective-C
文法之字串那些事
NSMutableString 類 繼承NSString類,那麼NSString 提供的方法在NSMutableString中基本都可以使用,NSMutableString好比一個字串鏈表,它可以任意的動態在字串中添加字串 刪除字串 指定位置插入字串,使用它來操作字串會更加靈活。
1.字串尾部添加
使用alloc在記憶體中建立字串對象後邊可以動態操作這個字串,修改與添加等。
appendstring 方法:向字串尾部添加一個字串。
appendFormat方法:向字串尾部添加多個類型的字串,可以添加任意數量與類型的字串。
- - (void)viewDidLoad
- {
- [super viewDidLoad];
-
-
- NSMutableString * str = [[NSMutableString alloc] init];
-
- //添加普通的字串
- [str appendString:@"aaa"];
-
- //添加字串 整型 字元型
- [str appendFormat:@"我的名字:%@ 我的年齡:%d 我的郵箱:%s",@"雨松MOMO", 25,"[email protected]"];
-
- NSLog(@"str = %@",str);
-
- }
2.字串中刪除元素
stringWithString 方法:用於建立字串初始化賦值
rangeOfString方法:傳入字串返回一個在該字串中的範圍 也可以寫 NSMakeRange(0, 3) 意思是範圍在字串0位到第3位
deleteCharactersInRange:刪除字串 參數為Range 就是刪除的範圍。
- - (void)viewDidLoad
- {
- [super viewDidLoad];
-
- //建立字串
- NSMutableString *str = [NSMutableString stringWithString:@"雨松MOMO喜歡哇哢哢~"];
-
- //刪除字串中含"雨松"的字元
- [str deleteCharactersInRange: [str rangeOfString: @"雨松"]];
-
- NSLog(@"str = %@",str);
-
- }
3.字串插入
stringWithString 方法:用於建立字串初始化賦值
insertString方法:第一個參數 插入的字串對象, 第二個參數 插入的位置。
- - (void)viewDidLoad
- {
- [super viewDidLoad];
-
- //建立字串
- NSMutableString *str = [NSMutableString stringWithString:@"雨松MOMO喜歡哇哢哢~"];
-
- //在str第10位插入字串
- [str insertString:@"與小可愛" atIndex:10];
-
- NSLog(@"str = %@",str);
-
- }
4.字串拷貝
- - (void)viewDidLoad
- {
- [super viewDidLoad];
-
- //建立字串
- NSMutableString *str1 = [NSMutableString stringWithString: @"字串1"];
- NSMutableString *str2;
-
- //字串賦值
- str2 = str1;
-
- [str2 appendString: @" 和字串2"];
-
- NSLog (@"str1 = %@", str1);
-
- NSLog (@"str2 = %@", str2);
- }
為什麼給str2添加資料後 str1的資料也改變了?這就是指標的魅力所在,因為我們操作的是指標,str2 = str1 意思是兩個指標同時指向一塊記憶體,那麼str2指向的記憶體內容改變以後str1當然跟著改變了。
5.字串與指定類型轉換
如果轉換的參數非法的話不會拋出異常,好比用中文去轉整型。不會報錯 但是轉換結果為 0 ,預設值。
- - (void)viewDidLoad
- {
- [super viewDidLoad];
-
- //字串轉整型
- NSString *str0 = @"1121";
- //NSString *str0 = @"中國";
-
- //把字串強轉成整型
- int i = [str0 intValue];
-
- NSLog (@"轉換後:%i", i);
-
- //字串轉interger
- NSString *str1 = @"1985";
- // NSString *str1 = @"中國";
-
- //把字串強轉成interger
- NSInteger ii = [str1 integerValue];
-
- NSLog (@"轉換後:%i", ii);
-
-
-
- //字串轉double
- NSString *str2 = @"3.145926";
- //NSString *str2 = @"中國";
-
- //把字串強轉成double
- double d = [str2 doubleValue];
-
- NSLog (@"轉換後:%f", d);
-
- //字串轉float
- NSString *str3 = @"3.145926";
- //NSString *str3 = @"中國";
- //把字串強轉成float
- double f = [str3 floatValue];
-
- NSLog (@"轉換後:%f", f);
-
- }
正常的轉換結果
傳入非法參數 不正常的結果
Objective-C文法之NSMutableString字串的那些事兒