IOS FoundationKit (NSString) 知識彙總

haibo wang發表於2014-04-09

1. interface 代表類宣告,@implement 代表類實現,@encode 代表將object-c 中型別轉換成指定字串

2  當前char * 型別轉化為字串需要轉化為NSString,轉化程式碼如下:

1     char cTest[12]="hello World\0";
2     NSString *eString=[[NSString alloc]initWithBytes:cTest length:12 encoding:NSUTF8StringEncoding];

3.NSString 轉化為 char *程式碼如下:

1     NSString *eString=@"Hello world";
2     const char *cTestAgain1=[eString UTF8String];
3     const char *cTestAgain2=[eString cStringUsingEncoding:NSUTF8StringEncoding];

4.字串的合併:

 NSString *gString=@"";
    gString =[gString stringByAppendingString:@"hello world"];

注:由於“stringByAppendingString”會將兩個字串合併,合併的結果以新的形象形式返回,所以gString物件執行後的指標都是新的。

5.字串的拆分操作:

   NSString *gString=@"2013/10/01";
   NSLog(@"[%@]",[gString componentsSeparatedByString:@"/"]);

 6.如果需要從一個字串中提取部分的內容:

1    NSString *hString = @"Hello World";
2     hString = [hString substringWithRange:NSMakeRange(0, 5)];
hString 最後的內容將會是@“Hello”.這裡我們傳入一個NSRange作為引數,NSRange其實是一個封裝好的結構表示一個範圍,他有兩個值:位置和長度.
如果我們始終是從首字母取5位字母的話,以下程式碼可讀性和速度會更好
1 NSString *hString = @"Hello World";
2 hString = [hString substringToIndex:5];

7.字串比較大小的情況

    NSString *aString = @"Hello World";
    NSString *bString=@"Hello worlf";
    NSComparisonResult compareResult=[aString compare:bString];

 8.從一個字串查詢特定內容:

    NSString *aString = @"Hello World";
    NSRange range=[aString rangeOfString:@"Wor" options:NSCaseInsensitiveSearch];

 9.在字串中替換特定內容:

    NSString *jString=@"hello Man";
    jString = [jString stringByReplacingOccurrencesOfString:@"Man" withString:@"World" options:NSCaseInsensitiveSearch range:NSMakeRange(0, jString.length)];

 10.字串大小寫轉換:

1     NSString *kString=@"hello World";
2     NSLog(@"大寫版本:%@",[kString uppercaseString]);
3     NSLog(@"小寫版本:%@",[kString lowercaseString]);

11.數值轉換程式碼:

    NSString *lString=@"3.1415926";
    NSLog(@"%f",[lString floatValue]);
    NSLog(@"%d",[lString intValue]);

 12.字串的路徑相關使用:

    NSString除了基本的字串整合功能之外,更是提供了方便的路徑操作功能供開發者使用。

    比如現在有一個放在A使用者的桌面上的一個名為test.txt的檔案,此檔案的路徑如下:

    NSString *aString=@"/Users/A/Desktop/test.txt";

    當需要知道此路徑檔案的檔名時,程式碼如下:

    aString=[aString lastPathComponent];

    當需要知道此檔案的檔案型別時,程式碼如下:

    aString=[aString pathExtension];

    當需要知道此路徑的使用者名稱時,程式碼如下:

    aString=[[aString pathComponents]objectAtIndex:1];

   

    蘋果中,在使用者目錄下可以使用符號“~”來代替使用者路徑,所以如果需要將“~”轉換為全部路徑,程式碼如下:

    NSString *aString=@"~/Desktop/test.txt";

    aString=[aString stringByExpandingTitldeInPath];

    和stringByExpandingTitldeInPath逆向相對的方法為stringByAbbreviatingWithTildeInPath,他將全路徑省略格式“~”

 

15.NSString 儲存到硬碟(寫入到檔案):

    NSString *aString=@"1234455";

    NSError *error=nil;

    [aString writeToFile:@"/Users/A/Desktop/test.txt" atomically:Yes encoding:NSUTF8StringEncoding error:&error];

    其中writeToFile的第二個引數設定為Yes,表示讓系統在寫test.txt檔案時不要直接寫到目標路徑去,而是開一個臨時性的檔案來儲存,名字取成和test.txt不一樣。待臨時性檔案儲存完成後再替換掉原來儲存的/users/A/Desktop/test.txt路徑下的檔案。這樣的好處是,在系統在儲存時發生錯誤了,原來的檔案不會被破壞掉。

 


相關文章