NSString常用方法


NSString 

--實例化方法-------------- 
NSString *str = [[NSString alloc] init]; 
NSString *str = [[[NSString alloc] init] autorelease];   

注意:在NSString 中存在自己的實例化和初始化的方法 例如: 
NSString *str1 = [NSString stringWithCString:"new String" enconding: NSACIIStringEncoding]; 
NSString *str2 = [NSString alloc] initWithCString:"new String" enconding: NSACIIStringEncoding]; 
str1和str2兩個對象是相同的。 

--NSStringEncoding 中常用的字符編碼---------------- 
     NSASCIIStringEncoding 
     NSUTF8StringEncoding 
     NSUnicodeStringEncoding 

--NSString創建實例---------------- 
帶“@”符號的方法只能定義含有英文和數字的NSString實例,例如: 
NSString *str = "Hello money~"; 
--生成含有中文的NSString方法------------- 
//此方法自動釋放內存 
+ (id)stringWithCString:(const char*)cString encoding:(NSStringEncoding)encoding; 
//進行alloc后進行初始化 
- (id)initWithCString:(const char*)cString encoding:(NSStringEncoding)encoding; 
例如: 
NSString *string = [NSString stringWithCString:"您好" encoding:NSUTF8StringEncoding]; 
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語言字符串 
%% 顯示%字符本身 

-------------------------- 
NSRange 

--NSRange的定義 
typedef struct _NSRange 

     unsigned int location; 
     unsigned int length; 
}NSRange; 

NSMakeRange函數 
--這個函數比較特殊 返回一個NSRange的對象。 
NSMakeRanger(unsigned int location,unsigned int length); 
例如: 
NSRange range = NSMakeRanger(0,5); 
NSLog(@"location is %d,length is %d",range.location,range.length); 

--------------------------- 
計算字符串長度 
- (unsigned int)length; 

--------------------------- 
字符串連接,插入和刪除 
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 *string = [NSMutableString stringWithString:@"Mac os"]; 
     [string deleteCharactersInRange:NSMakeRanger(0,1)]; 
     NSLog(string); 
     string -->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、字符串檢索 
     NSString 
     //如果找到就返回范圍,否則NSRange的location項被設置為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、截取字符串 
     NSString 
     - (NSString *)substringToIndex:(unsigned)index;     //返回字符串開頭至index位的字符串 不包含索引位 
     - (NSString *)substringFromIndex:(unsigned)index; //返回字符串第index位至末尾的字符串 包含索引位 
     - (NSString *)substringWithRange:(NSRange)range;     //返回字符串中范圍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/yw.txt" encoding:NSUTF8StringEncoding error:&error]; 
     if(string){} 
10、輸出文本文件 
     NSString 
     - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error 
     //參數 atomically 暫時將文件保存到輔助文件中 
     //path 
     The file to which to write the receiver. If path contains a tilde (~) character, you must expand it withstringByExpandingTildeInPath before invoking this method. 
    ----下面是網上找的例子 感謝 @chenshizero 
    //擴展路徑 
    NSString *Path = @"~/NSData.txt"; 
    NSString *absolutePath = [Path stringByExpandingTildeInPath]; 
    NSLog(@"absolutePath:%@",absolutePath); 
    NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]); 

    //文件擴展名 
    NSString *Path = @"~/NSData.txt"; 
    NSLog(@"Extension:%@",[Path pathExtension]); 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM