1. 程式人生 > >IOS NSString 用法詳解

IOS NSString 用法詳解

//NSString 操作均不改變自身值  
//構建字串  
NSString *szTmp = @"A string";      //直接賦值  
szTmp = nil;  
  
int n = 5;  
NSString *szMyString = [NSString stringWithFormat:@"The number is %d",n];   //The number is 5  
[szMyString stringByAppendingFormat:@"%d",22];  //附加字串返回值:The number is 522  
                                                //但是szMyString本身並沒有改變,其值依然:The number is 5    
[cpp] view plaincopy
//長度與索引字元  
NSLog(@"%d",szMyString.length);                 //字串長度:15  
NSLog(@"%c",[szMyString characterAtIndex:2]);   //返回字元:e  
[cpp] view plaincopy
//與c字串相互轉換  
printf("%s\n",[szMyString UTF8String]);         //轉為__strong const char *  
const char *szTmp1 = [szMyString cStringUsingEncoding:NSUTF8StringEncoding];  
printf("%s\n",szTmp1);                          //轉為__strong const char *  
  
NSLog(@"%@",[NSString stringWithCString:szTmp1 encoding:NSUTF8StringEncoding]); //轉為nsstring  
[cpp] view plaincopy
//字串寫檔案  
NSError *error;  
NSString *szPath = [NSHomeDirectory()           //應用程式沙盒路徑  
                    stringByAppendingPathComponent:@"Documents/testFile.txt"];  //附加路徑地址  
if (![szMyString writeToFile:szPath atomically:YES  //atomically:是否是原子訪問檔案的  
                    encoding:NSUTF8StringEncoding error:&error]) {          //寫入成功返回yes 否則no  
    NSLog(@"Error writing to file :%@",[error localizedDescription]);       //輸出錯誤描述  
    return 1;  
}  
NSLog(@"File write success");  
[cpp] view plaincopy
//檔案讀字串  
NSString *szInString = [NSString stringWithContentsOfFile:szPath            //讀取檔案資訊  
                        encoding:NSUTF8StringEncoding error:&error];  
if (!szInString)  
{  
    //失敗  
}  
NSLog(@"%@",szInString);        //成功  
[cpp] view plaincopy
//字串轉為陣列  
NSArray *arrayWord = [szMyString componentsSeparatedByString:@" "]; //有空格的拆分為單詞儲存  
NSLog(@"%@",arrayWord);  
[cpp] view plaincopy
//索引子串  
NSString *szSub1 = [szMyString substringToIndex:3];     //0-2,前3個:The  
NSLog(@"%@",szSub1);  
  
NSString *szSub2 = [szMyString substringFromIndex:4];   //4-尾,去掉前4個:number is 5  
NSLog(@"%@",szSub2);  
[cpp] view plaincopy
//範圍索引  
NSRange range;  
range.location = 4;     //從4開始  
range.length = 6;       //6個字元  
NSString *szSub3 = [szMyString substringWithRange:range];       //number  
NSLog(@"%@",szSub3);  
[cpp] view plaincopy
//搜尋與替換  
NSRange rangeSearch = [szMyString rangeOfString:@"is 5"];   //搜尋  
if (rangeSearch.location != NSNotFound) {           //搜尋不到是 NSNotFound  
    //成功:rangeSearch.location;//位置 rangeSearch.length;//長度  
}  
  
NSLog(@"%@",[szMyString stringByReplacingCharactersInRange:rangeSearch      //用位置匹配替換  
                                                withString:@"isn't 10"]);  
  
NSString *szReplaced = [szMyString stringByReplacingOccurrencesOfString:@" " withString:@"*"];  //匹配字串替換  
NSLog(@"%@",szReplaced);  
[cpp] view plaincopy
//改變大小寫  
NSLog(@"%@",[szMyString uppercaseString]);      //大寫  
NSLog(@"%@",[szMyString lowercaseString]);      //小寫  
NSLog(@"%@",[szMyString capitalizedString]);    //首字母大寫  
[cpp] view plaincopy
//比較字串  
NSString *sz1 = @"Hello World!";  
NSString *sz2 = @"Hello Mom!";  
if ([sz1 isEqualToString:sz2]) {/*相等*/}  
if ([sz1 hasPrefix:@"Hello"]) {NSLog(@"前部分相等");}        //從頭開始比較  
if ([sz1 hasSuffix:@"d!"]) {NSLog(@"後部分相等");}       //從尾部比較  
[cpp] view plaincopy
//字串轉換數字  
NSString *szNumber = @"3.14";  
[szNumber intValue];  
[szNumber boolValue];  
[szNumber floatValue];  
[szNumber doubleValue];  
[cpp] view plaincopy
//可變字串  
NSMutableString *szMuMyString = [NSMutableString stringWithString:@"Hello"];  
[szMuMyString appendFormat:@"World"];       //字串,改變自身  
[szMuMyString uppercaseString];  
NSLog(@"%@",szMuMyString);