NSMutableString類繼承自NSString,所以在NSString中的方法在NSMutableString都可以使用. NSMutableString和NSString的區別在於NSMutableString是動態的字串,可以動態的新增,修改,刪除等。在前面提到了就和.NET中的string和StringBuilder的區別一樣。
1. 新增字串
向字串末尾新增字串可以使用appendString方法和appendFormat方法。appendString方法主要用於向字串末尾新增一個字串;appendFormat 方法用於向字串末尾新增多種型別的字串,相當於.NET中的appendFormat 方法使用佔位符。
NSMutableString *str=[[NSMutableString alloc] init]; [str appendString:@"NSMutableString 字串"]; NSLog(@"appendString=%@",str); [str appendFormat:@" --我的名字:%@ , 年齡 %d",@"Object C",10]; NSLog(@"appendFormat: %@",str);
測試效果如下:
2014-02-15 12:30:21.476 ObjectC10[1233:303] appendString=NSMutableString 字串 2014-02-15 12:30:21.478 ObjectC10[1233:303] appendFormat: NSMutableString 字串 --我的名字:Object C , 年齡 10
2. 刪除字串
在NSMutableString中使用stringWithString方法來初始化字串;
使用rangeOfString獲取某個字串在原字串的位置以及長度;
使用deleteCharactersInRange方法刪除特定位置的字串
NSMutableString *str=[NSMutableString stringWithString:@"Object C 之NSMutableString類"]; NSLog(@"stringWithString= %@ ",str); NSRange range= [str rangeOfString:@"Mutable"]; NSLog(@"Location=%d",range.location); NSLog(@"length=%d",range.length); [str deleteCharactersInRange:range]; NSLog(@"deleteCharactersInRange=%@",str);
測試效果如下:
2014-02-15 12:45:34.078 ObjectC10[1272:303] stringWithString= Object C 之NSMutableString類 2014-02-15 12:45:34.080 ObjectC10[1272:303] Location=12 2014-02-15 12:45:34.080 ObjectC10[1272:303] length=7 2014-02-15 12:45:34.080 ObjectC10[1272:303] deleteCharactersInRange=Object C 之NSString類
3. 插入字串
在NSMutableString中在某個字串特定位置新增一個字串使用insertString方法;
NSMutableString *str=[NSMutableString stringWithString:@"Obejct C"]; NSLog(@"%@",str); NSString *str2=@"學習"; [str insertString:str2 atIndex:6]; NSLog(@"insertString= %@",str);
測試效果如下:
2014-02-15 12:53:14.517 ObjectC10[1294:303] Obejct C 2014-02-15 12:53:14.519 ObjectC10[1294:303] insertString= Obejct學習 C
4.字串拷貝
因為NSMutableString是引用型別,也就是指標型別,當一個變數賦值給另外一個變數的時候,兩者其實是指向的同一個地址。
//建立字串 NSMutableString *str1 = [NSMutableString stringWithString: @"字串1"]; NSMutableString *str2; //字串賦值 str2 = str1; [str2 appendString: @" 和字串2"]; NSLog (@"str1 = %@", str1); NSLog (@"str2 = %@", str2);
測試效果如下:
2014-02-15 12:55:33.667 ObjectC10[1308:303] str1 = 字串1 和字串2 2014-02-15 12:55:33.683 ObjectC10[1308:303] str2 = 字串1 和字串2
5. 字串型別轉換
intValue用於將字串型別轉換為int 型別
integerValue用於將字串型別轉換為NSInteger 型別
floatValue用於將字串型別轉換為float型別
doubleValue用於將字串型別轉換為double型別
NSString *str1=@"123"; int value1=[str1 intValue]; NSLog(@"轉化為int型別: str1=%d",value1); NSString *str2=@"1234"; NSInteger value2=[str2 integerValue]; NSLog(@"轉化為NSInteger型別: str2=%i",value2); NSString *str3=@"3.1415"; float value3=[str3 floatValue]; NSLog(@"轉換為float型別: str3=%0.4f",value3); double value4=[str3 floatValue]; NSLog(@"轉換為double型別: str3=%0.4f",value4);
測試效果如下:
2014-02-15 13:07:00.070 ObjectC10[1378:303] 轉化為int型別: str1=123 2014-02-15 13:07:00.094 ObjectC10[1378:303] 轉化為NSInteger型別: str2=1234 2014-02-15 13:07:00.094 ObjectC10[1378:303] 轉換為float型別: str3=3.1415 2014-02-15 13:07:00.095 ObjectC10[1378:303] 轉換為double型別: str3=3.1415
如果字串格式有問題,則轉換的時候會報異常。