字符串
知識點
1.NSString
2.NSMutableString
3.理解NSMutableString與NSString的承繼關系
理解:
1.什麼是字符編碼
是一套規律,運用該規律可以對自然言語的字符的一個集合(如字母表或音節表),與其他東西的一個集合(如號碼或電脈 沖)停止配對。即在符號集合與數字零碎之間樹立對應關系。
字符編碼百科:http://baike.baidu.com/link?url=bFKEidJQmo3JEljFQRbtkEyToRe1_SrqbCgNsv4jKcYGFyTBixJjhTVYegSiozPVpvrR99cQhUoQq_01BnF1L_
2.UTF8編碼:UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。由Ken Thompson於1992年創立。如今曾經規范化為RFC 3629。UTF-8用1到6個字節編碼UNICODE字符。用在網頁上可以同一頁面顯示中文簡體繁體及其它言語(如英文,日文,韓文)。
========= 不可變字符串(NSString) =========
1.為什麼需求NSString對象
答:在OC中創立字符串時,普通不運用C的辦法,
由於C將字符串作為字符數組,所以在操作時會有很多不方便的中央,
在Cocoa中NSString集成的一些辦法,可以很方便的操作字符串。
2.OC中定義字符串和C言語定義字符串
//C字符串常量
char *cString = "c字符串";
printf("c string is %s\n",cString);
//OC字符串常量
NSString *ocString = @"oc字符串";
NSLog(@"oc string is %@",ocString);
3.NSLog如何格式化NSString對象
%@
4.字符串創立
(1)定義一個空的不可變字符串(普通用不到):
NSString *string = [[NSString alloc] init];
(2)定義一個有值的字符串(普通用不到)
[NSString stringWithString:@"test"];
[[NSString alloc] initWithString:<#(NSString *)#>];
5.如何格式化一個字符串
[NSString stringWithFormat:<#(NSString *), ...#>];
6.C言語字符串和NSString的轉換
<1>c字符串轉化為NSString
[NSString stringWithUTF8String:c];
<2>NSString轉化為C
[string UTF8String];
7.如何從文本文件中讀取字符串
//第1種:
/*
stringWithContentsOfFile:要讀取文件途徑
encoding:編碼方式
error:錯誤信息,可以傳nil
*/
//類辦法
s = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
//對象辦法
[[NSString alloc] initWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>];
第2種:
//把途徑的字符串轉化為NSURL對象
NSURL *filePath = [NSURL fileURLWithPath:path];
string = [NSString stringWithContentsOfURL:filePath encoding:NSUTF8StringEncoding error:nil];
8.如何把一個字符串寫入到文件中
/*
writeToFile:要寫入的文件途徑(file path)
atomically:YES表示原子性,NO表示非原子性。普通是YES(比擬平安),當為YES,零碎在寫入的進程中會創立一個暫時文件,零碎先把數據寫入到暫時文件外面,假如寫入成功,最後賦值到目的文件外面。
encoding:編碼,普通是UTF8(NSUTF8StringEncoding)
*/
NSError *error;
//文件不存在會自動創立
[string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
9.如何從網絡上讀取字符串
NSURL *url = [NSURL URLWithString:近程地址];
string = [NSString stringWithContentsOfURL: url encoding:NSUTF8StringEncoding error:nil];
10.求字符串長度(一個中文長度為1)
[string length]
11.經過索引獲取相應的字符
[string characterAtIndex:0]
12.字符串判別
1)判別兩個字符串內容能否相反
[s1 isEqualToString:s2]
2)判別兩個字符串能否是同一個對象
if (s1 == s2)
{
NSLog(@"s1和s2是同一個對象");
}
else
{
NSLog(@"s1和s2不是同一個對象");
}
13.字符串比擬
1)兩個字符串比擬(區分大小寫)
NSComparisonResult result = [s1 compare:s2];
if (result == NSOrderedAscending)
{
NSLog(@"s2 > s1");
}
else if (result == NSOrderedSame)
{
NSLog(@"s1 = s2");
}
else
{
NSLog(@"s2 < s1");
}
2)比擬兩個字符串(疏忽大小寫)
//疏忽大小寫
result = [s1 caseInsensitiveCompare:s2];
14.轉化為根本類型(int,float,bool,double,integer)
//轉化為int
[num2 intValue];
//轉化為NSInteger
[num2 integerValue];
//轉化為Double
[num2 doubleValue];
//float
[num2 floatValue];
//long long
[num2 longLongValue];
//bool
[num2 boolValue];
15.把一個字符串轉化為大寫,小寫,各個單詞的首字母大寫
//轉化為大寫
NSString *upperString = [s1 uppercaseString];
NSLog(@"大寫:%@",upperString);
//轉化為小寫
NSString *lowString = [s1 lowercaseString];
NSLog(@"小寫:%@",lowString);
//各個單詞的首字母大寫
NSString *ss = [s1 capitalizedString];
NSLog(@"各個單詞的首字母大寫:%@",ss);
16. 交換字符串
[S stringByReplacingOccurrencesOfString:A withString:B];//把S中一切的A換為B
[string stringByReplacingOccurrencesOfString:@"l3l" withString:@"s"];
17.聯系一個字符串,轉化為數組
[string componentsSeparatedByString:@“分隔符”];
18.字符串截取
//從指定索引截取到最後
NSString *subString = [string substringFromIndex:起始索引];
//從開端截取到指定的索引之前
subString = [string substringToIndex:終止索引(不包括以後索引)]’
//截取字符串的一局部
//范圍
NSRange range = NSMakeRange(2, 3);
[string substringWithRange:range];
19.字符串拼接
(1)拼接一個字符串
[str1 stringByAppendingString:str2]
(2)拼接一個格式化字符串
[str1 stringByAppendingFormat:@" %@",str2]
20.查找字符串
//[string rangeOfString:要查找的字符串]
//只會查找第一次呈現的字符串,從前向後查找
range = [string rangeOfString:@"test"];
NSLog(@"%ld - %ld",range.location,range.length);
/*
NSCaseInsensitiveSearch 不區分大小寫
NSLiteralSearch 區分大小寫
NSBackwardsSearch 從後向前查找
*/
range = [string rangeOfString:@"test" options:NSBackwardsSearch];
NSLog(@"%ld - %ld",range.location,range.length);
21.判別一個字符串能否以某個前綴或許後綴
//判別能否以某個字符串前綴掃尾
[string hasprefix:@"he22"]
//判別能否以某個字符串前綴開頭
[string hasSuffix:@"ds"];
22.途徑
1)途徑前面追加一個文件名或許途徑(網絡會用到)
[path stringByAppendingPathComponent:文件名或許文件夾名字];
2)把指定的字符串數組拼接成途徑
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"Users",@"qianfeng",@"desktop",@"新建文件夾", nil];
newPath = [NSString pathWithComponents:array];
3)將途徑聯系成字符串數組
NSArray *components = [path pathComponents];
4)判別能否是相對途徑
BOOL isAbsolutePath = [path isAbsolutePath];
5)獲取最後一個目錄或許文件名
//取途徑的最後一局部
NSString *s = [path lastPathComponent];
6)刪除途徑最後一局部
[path stringByDeletingLastPathComponent];
7)獲取文件後綴
[path pathExtension]
8)刪除後綴
[path stringByDeletingPathExtension];
9)添加後綴
[path stringByAppendingPathExtension:@"png"];
.
========= 可變字符串(NSMutableString) =========
1.初始化可變字符串(必需初始化)
NSMutableString *string = [[NSMutableString alloc] init];
string = [NSMutableString string];
2.初始化帶有字符串的可變字符串
[NSMutableString stringWithString:@"sss"];
3.設置字符串
//設置字符串(會掩蓋原來字符串內容)
[string setString:@"測試"];
4.在指定的地位拔出字符串
[string insertString:@“要拔出的字符串” atIndex:拔出字符串的下標];
5.追加一個局部字符串(在最後追加)
[string appendString:@"🐷"];
//追加格式化字符串
[string appendFormat:@"dog=%@ cat=%@",@"🐶",@"🐱"];
6.刪除字符串一局部
//要刪除的范圍
NSRange deleteRange = NSMakeRange(3, 2);
//刪除指定范圍的字符
[string deleteCharactersInRange:deleteRange];
【iOS開發-OC言語 (三)字符串】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!