OC之NSString/NSMutableString

NSString 不可變字符串網絡

NSMutableString 可變字符串app

定義:編碼

NSString *str = [[NSString alloc] init]; atom

NSString *str = [[[NSString alloc] init] autorelease];   url

注意:在NSString 中存在本身的實例化和初始化的方法 例如: spa

NSString *str1 = [NSString stringWithCString:"new String" enconding: NSACIIStringEncoding]; code

NSString *str2 = [NSString alloc] initWithCString:"new String" enconding: NSACIIStringEncoding]; orm

str1str2兩個對象是相同的。 對象

NSStringEncoding 中經常使用的字符編碼 索引

     NSASCIIStringEncoding

     NSUTF8StringEncoding

     NSUnicodeStringEncoding

NSString建立實例

帶「@」符號的方法只能定義含有英文和數字NSString實例,例如:

NSString *str = "Hello money~";

生成含有中文的NSString方法:

1)此方法自動釋放內存

NSString *string = [NSString stringWithCString:

"您好" encoding:NSUTF8StringEncoding];  

2)進行alloc後進行初始化

NSString *string = [[NSString alloc] initWithCString:

"您好" encoding:NSUTF8StringEncoding];

使用格式建立字符串:

+ (id)stringWithFormat:(NSString *)format...

- (id)initWithFormat:(NSString *)format...

例如:

NSString *str = "hello";

NSString *string = [NSString stringWithFormat:@"%@ world",str];

NSLog(string); 結果:hello world

經常使用的替換符:

%@ NSString實例

%d,%D,%i 整數

%u,%U 無符號整數

%x 將無符號整數以十六進制小寫字母顯示

%X 將無符號整數以十六進制大寫字母顯示

%f 小數

%c 字符

%s C語言字符串

%% 顯示%字符自己

字符串鏈接,插入和刪除

1、鏈接

- (NSString *)stringByAppendingString:(NSString *)string;

- (NSString *)stringByAppendingFormat:(NSString *)format...;

例如:

     NSString *str1 = @"hello";

     NSString *str2 = @"world";

     NSString *str3 = [str1 stringByAppendingString:str2];

     NSString *str4 = [str2 stringByAppendingFormat:

@"%d...%d",10,20];

     str4 --> world 10...20

     NSMutableString的生成:

     NSString  + (id)string;  //生成空字符串的實例

     + (id)stringWithString:(NSString *)string; //帶自動釋放內存

     - (id)initWithString:(NSString *)string;

     例如:

      NSMutableString *string =

[NSMutableString stringWithString:@"hello"];

2、追加字符串

     NSMutableString

     + (void)appendString:(NSString *)string;

     - (void)appendFormat:(NSString *)format...;

     例如:

     NSMutableString string = [NSMutableString string];

     [string appendString:@"hello"];

     [string appendString:@"money"];

     [string appendString:@" and world"];

3、插入字符串

     NSMutableString

     + (void)insertString:(NSString *)string atIndex:(unsigned)index;

     index位置插入字符串

     例如:

      NSMutableString *string =

[NSMutableString stringWithString:@"Mac X"];

      [string insertString:@"OS" atIndex:4];

      string --> Mac OS X

4、刪除字符串

      NSMutableString

      + (void)deleteCharactersInRange:(NSRange)range;

 例如:

      NSMutableString *myString =

[NSMutableString stringWithString:@"Mac os"];

      [myString deleteCharactersInRange:NSMakeRanger(0,1)];

等價於:

      NSMutableString * myString =

[NSMutableString stringWithString:@"Mac os"];

NSRange range = [myString rangeofString:@」M」];

[myString deleteCharactersInRange:range];

以後myString 就變成了ac os;

5、字符串比較

     NSString

     - (BOOL)isEqualToString:(NSString *)string;

6、比較前置串和後置串

     NSString

     - (BOOL)hasPrefix:(NSString *)string;

     - (BOOL)hasSuffix:(NSString *)string;

     例如:

     NSString *str1 = @"Mac OS";

     NSString *str2 = @"Mac Pro";

     BOOL flag;

     flag = [str1 hasPrefix:@"Mac"];  YES

     flag = [str2 hasSuffix:@"OS"];  NO

7、字符串檢索

     若是找到就返回範圍,不然NSRangelocation項被設置爲NSNotFound

     - (NSRange)rangeOfString:(NSString *)subString;

 

     - (NSRange)rangeOfString:(NSString *)subString

 option:(unsigned)mask;

 

     - (NSRange)rangeOfString:(NSString *)subString

option:(unsigned)mask  range:(NSRange)range;                                                                                       

mask經常使用選項列表:

     NSCaseInsensitiveSearch   不區分字母大小寫

     NSLiteralSearch  對字符串進行字節單位的比較,通常可提升檢索速度

     NSBackwardsSearch  從範圍的末尾開始檢索

     NSAnchoredSearch  僅檢索制定範圍的前部。忽略字符串中間的檢索字符

     例如:

     NSString *string = @"hello world";

     NSRange range = [string rangeOfString:@"he"];

     if(range.location != NSNotFound)

     {

          NSLog(@" location=%d,length=%d",range.location,range.length);

     }

8、截取字符串

1)返回字符串開頭至index位的字符串 不包含索引位

     - (NSString *)substringToIndex:(unsigned)index;

2)返回字符串第index位至末尾的字符串 包含索引位

- (NSString *)substringFromIndex:(unsigned)index;

3)返回字符串中範圍range內的字符串 包含索引位

     - (NSString *)substringWithRange:(NSRange)range;

例如:

     NSString *string = [string substringWithRange:NSMakeRange(5,2)];

9、讀取文本文件

     NSString

     + (id)stringWithContentsOfFile:(NSString *)path

usedEncoding:(NSStringEncoding *)enc error:(NSError **)error     //自動釋放內存

   

 - (id)initWithContentsOfFile:(NSString *)path

encoding:(NSStringEncoding)enc error:(NSError **)error

     例如:

      NSString *string = [NSString stringWithContentsOfFile

:@"/user/test/LFF.txt" encoding:NSUTF8StringEncoding error: nil]

還有一個更強大的方法:

//NSURL *url = [[NSURL alloc] initWithString:

@"file:///Users/apple/Desktop/1.txt"];

NSURL *url = [NSURL fileURLWithPath:

@"/Users/apple/Desktop/1.txt"];

   

NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:

NSUTF8StringEncoding error:nil];

NSLog(@"s6=\n%@", s6);

使用讀取URL的方法,不只能夠讀取本地資源,還能夠讀取網絡資源,但要注意資源路徑的格式:

URL : 資源路徑

    協議頭://路徑

    file://

    ftp://

10、將字符串寫入文本文件

     NSString

    -(BOOL)writeToFile:(NSString*)path atomically:

(BOOL)useAuxiliaryFile encoding: (NSStringEncoding)

enc error:(NSError **)error

例如:[@"Jack\nJack" writeToFile:@"/Users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];

相關文章
相關標籤/搜索