天天看點

黑馬程式員——Foundation架構——NSString

------Java教育訓練、Android教育訓練、iOS教育訓練、.Net教育訓練、期待與您交流! -------

1,概念:操作字元串的類

2,子類:

NSMutableString:可變字元串

NSString:不可變字元串

3,NSString的簡單操作

建立NSString

對象方法:

最基本的方法

NSString *str1 = @"Demo";
           

跟基本方法沒差別,太麻煩不推薦

NSString *str2 = [[NSString  alloc ]initWithString :@"Demon "];
           

常用可傳遞變量

NSString *str3 = [[NSString  alloc ] initWithFomat :@"Demon 's age is %d",25];
           

C語言字元串轉換OC字元串,注意字元串前面沒‘@’

NSString *str4 = [[NSString  alloc ] initWithUTF8String:"Demon"];
           

OC字元串轉換成C字元串

const char  *s = [str4 UTF8String];
           

從檔案讀取字元串,第一個參數是路徑(絕對路徑)第二個參數是編碼(有中文有NSUTF8String就可以),第三個參數設定為空即可

NSString *str5 = [[NSString  alloc ] initWithContainsOfFile:@"/Users/Demon/Desktop /xxx.xxx";
           

從資源路徑讀取字元串:

URL:資源路徑

協定頭://路徑

檔案file://

網頁http://

伺服器:ftp ://

NSURL *u = [[NSURL alloc] initWithString:@"file:///Users/Demon/Desktop/xxx.xxx"] // 這裡注意是三個斜杠,前兩個是協定頭,後面是路徑  
  
NSString *str6 = [[NSString alloc] initWithContentsOfURL:/Users/Demon/Desktop/xxx.xxx encoding:NSUTF8StringEncoding error:nil];  
           

類方法:

上面的這些方法都有對應的類方法,使用類方法更友善,節省時間!

NSString *str3 = [[NSString alloc] initWithFomat:@"Demon's age is %d", 25]; // 對象方法  
  
NSString *s3 = [NSString stringWithFomat:@""]; // 類方法  
           

注意:類方法一類名開頭

NSURL *u = [[NSURL alloc] initWithString:@""] // 對象方法  
  
[NSURL URLWithString:@""]; // 類方法  
  
[NSURL fileURLWithPath:@""]; // 這種方法已經表明了是哪一種資源,是以可以直接跟路徑 
           

将字元串寫入檔案

[@"Demon" writeToFile:@"/Users/Demon/Desktop/xxx.xxx" atomically:YES encoding:NSUTF8StringEncoding error:nil];
           

其中第一個參數是路徑 ,第二個參數寫YES就可以(原子性操作,表示中途失敗就不建立檔案),後面兩個跟讀入一樣

另外還有一個writeToURL,跟上面參數一樣,先建立URL再調用方法即可

4,NSMutableString的使用方法

NSMutableString是NSString的子類,NSMutableString包含了父類NSString所有用法

特有用法:

拼接字元串

NSMutableString *s1 = [[NSMutableString  alloc ] initWithFomat :@"Demon 's age is %d",25];
[s1 appendString:@"1,2,3"];
           

删除字元串

方法一:是把Demon‘s删除了(不常用,如果字元串改了他也得改)

[s1 deleteCharactersInRange:NSMakeRange(0,1)]; 
           

方法二:這種組合方式比較常用,無論字元串如何改變,都能删除指定的内容

NSRange  range  = [s1 rangeOfString:@"Demon's"];
[s1 deleteCharactersInRange: range ];
           

NSString和NSMutableString的差別:

1>NSString不可變:裡面内容一旦初始化就不能更改,NSMutableString可以改變内容

2>NSString也有一個方法拼接的字元串,但是傳回的将不是原來的字元串,原字元串不變

NSString *str1 = @"Demon";

NSString *str7 = [str1 stringByAppendingString:@"1,2,3"];