Posted on 2012-05-29 21:59
RTY 閱讀(705)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
編程常識(shí) 、
Mac os 、
轉(zhuǎn)載隨筆
http://keys.iteye.com/blog/1117190
個(gè)人學(xué)習(xí)筆記
NSString
--實(shí)例化方法--------------
NSString *str = [[NSString alloc] init];
NSString *str = [[[NSString alloc] init] autorelease];
注意:在NSString 中存在自己的實(shí)例化和初始化的方法 例如:
NSString *str1 = [NSString stringWithCString:"new String" enconding: NSACIIStringEncoding];
NSString *str2 = [NSString alloc] initWithCString:"new String" enconding: NSACIIStringEncoding];
str1和str2兩個(gè)對(duì)象是相同的。
--NSStringEncoding 中常用的字符編碼----------------
NSASCIIStringEncoding
NSUTF8StringEncoding
NSUnicodeStringEncoding
--NSString創(chuàng)建實(shí)例----------------
帶“@”符號(hào)的方法只能定義含有英文和數(shù)字的NSString實(shí)例,例如:
NSString *str = "Hello money~";
--生成含有中文的NSString方法-------------
//此方法自動(dòng)釋放內(nèi)存
+ (id)stringWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;
//進(jìn)行alloc后進(jìn)行初始化
- (id)initWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;
例如:
NSString *string = [NSString stringWithCString:"您好" encoding:NSUTF8StringEncoding];
NSString *string = [[NSString alloc] initWithCString:"您好" encoding:NSUTF8StringEncoding];
--使用格式創(chuàng)建字符串-------------
+ (id)stringWithFormat:(NSString *)format...
- (id)initWithFormat:(NSString *)format...
例如:
NSString *str = "hello";
NSString *string = [NSString stringWithFormat:@"%@ world",str];
NSLog(string); 結(jié)果:hello world
--常用的替換符--------------
%@ NSString實(shí)例
%d,%D,%i 整數(shù)
%u,%U 無(wú)符號(hào)整數(shù)
%x 將無(wú)符號(hào)整數(shù)以十六進(jìn)制小寫(xiě)字母顯示
%X 將無(wú)符號(hào)整數(shù)以十六進(jìn)制大寫(xiě)字母顯示
%f 小數(shù)
%c 字符
%s C語(yǔ)言字符串
%% 顯示%字符本身
--------------------------
NSRange
--NSRange的定義
typedef struct _NSRange
{
unsigned int location;
unsigned int length;
}NSRange;
NSMakeRange函數(shù)
--這個(gè)函數(shù)比較特殊 返回一個(gè)NSRange的對(duì)象。
NSMakeRanger(unsigned int location,unsigned int length);
例如:
NSRange range = NSMakeRanger(0,5);
NSLog(@"location is %d,length is %d",range.location,range.length);
---------------------------
計(jì)算字符串長(zhǎng)度
- (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; //生成空字符串的實(shí)例
+ (id)stringWithString:(NSString *)string; //帶自動(dòng)釋放內(nèi)存
- (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項(xiàng)被設(shè)置為NSNotFound
- (NSRange)rangeOfString:(NSString *)subString;
- (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask;
- (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask range:(NSRange)range;
-----mask常用選項(xiàng)列表
NSCaseInsensitiveSearch 不區(qū)分字母大小寫(xiě)
NSLiteralSearch 對(duì)字符串進(jìn)行字節(jié)單位的比較,一般可提高檢索速度
NSBackwardsSearch 從范圍的末尾開(kāi)始檢索
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; //返回字符串開(kāi)頭至index位的字符串 不包含索引位
- (NSString *)substringFromIndex:(unsigned)index; //返回字符串第index位至末尾的字符串 包含索引位
- (NSString *)substringWithRange:(NSRange)range; //返回字符串中范圍range內(nèi)的字符串 包含索引位
例如:
NSString *string = [string substringWithRange:NSMakeRange(5,2)];
9、讀取文本文件
NSString
+ (id)stringWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error //自動(dòng)釋放內(nèi)存
- (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
//參數(shù) atomically 暫時(shí)將文件保存到輔助文件中
//path
The file to which to write the receiver. If path contains a tilde (~) character, you must expand it withstringByExpandingTildeInPath before invoking this method.
----下面是網(wǎng)上找的例子 感謝 @chenshizero
//擴(kuò)展路徑
NSString *Path = @"~/NSData.txt";
NSString *absolutePath = [Path stringByExpandingTildeInPath];
NSLog(@"absolutePath:%@",absolutePath);
NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);
//文件擴(kuò)展名
NSString *Path = @"~/NSData.txt";
NSLog(@"Extension:%@",[Path pathExtension]);