iOS NSString 最基本用法
1.把字符串写入到制定文件夹中
NSString *myString = @"huweibin is iOS";
NSError *error;
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp/rongtian.txt"];
if (![myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]) {
NSLog(@"写入文件错误 %@",error);
return;
}
2.NSString范围
NSRange r;
r.location = 4;
r.length = 5;
NSString *strSub = [str substringWithRange:r];
NSLog(@"范围 %@",strSub);
3.搜索
NSRange searchRange = [str rangeOfString:@"five"];
if (searchRange.location != NSNotFound) {
NSLog(@"搜索 location %d %d",searchRange.location,searchRange.length);
}
4.替换
NSString *replaced = [str stringByReplacingOccurrencesOfString:@" " withString:@"+"];
NSLog(@"替换的文件 %@",replaced);
#pragma mark -字符串的比较
void text() {
NSString * str = @"RongTian";
// 转成大写
[str uppercaseString];
// 转成小写
[str lowercaseString];
// 首字母大写,其余小写
[@"ffEW" capitalizedString];
}
#pragma mark 比较2个字符串的大小
void compareString() {
// NSOrderedAscending -1
// NSOrderedSame
// NSOrderedDescending
NSComparisonResult result = [@"bmn" compare:@"azz"];
if (result == NSOrderedSame) {
NSLog(@"左 == 右");
}else if (result == NSOrderedDescending) {
NSLog(@"左 > 右");
}else if (result == NSOrderedAscending)
{
NSLog(@"左 < 右");
}
NSComparisonResult caseInsenresult = [@"dffA" caseInsensitiveCompare:@"dffa"];
if (caseInsenresult == NSOrderedSame) {
NSLog(@"左 == 右");
}else if (caseInsenresult == NSOrderedDescending) {
NSLog(@"左 > 右");
}else if (caseInsenresult == NSOrderedAscending)
{
NSLog(@"左 < 右");
}
}
#pragma mark 字符串的搜索
void searchString() {
NSString *str = @"456789456";
NSLog(@"是否456开头 %i", [str hasPrefix:@"456"]);
NSLog(@"是否789结尾 %i",[str hasSuffix:@"789"]);
NSRange range = [str rangeOfString:@"567"];
if (range.location == NSNotFound) {
NSLog(@"str中没有找到 567");
}else {
NSLog(@"搜索范围 %@",NSStringFromRange(range));
}
// 或者
// if (range.length == 0 ) {
// NSLog(@"str中没有找到 567");
// }
// 从尾开始搜索
range = [str rangeOfString:@"456" options:NSBackwardsSearch] ;
NSLog(@"从尾搜索的范围 %@",NSStringFromRange(range));
// [str rangeOfString:<#(NSString *)#> options:<#(NSStringCompareOptions)#> range:<#(NSRange)#>]
}
#pragma mark 截取字符串
void subString() {
NSString *str = @"0987654321";
NSLog(@"从索引indext=3开始到尾截取(包括3) %@",[str substringFromIndex:2]);
NSLog(@"从头开始截取到索引3(不包括3)%@",[str substringToIndex:3]);
NSRange range = NSMakeRange(2, 3);
[str substringWithRange:range];
NSString *str2 = @"a-b-c-d-e";
NSArray *array = [str2 componentsSeparatedByString:@"-"];
NSLog(@"通过 - 分割后的数组:%@",array);
}
#pragma mark 字符串与路径
void pathString() {
NSMutableArray *comArrat = [NSMutableArray arrayWithObjects:@"User",@"Rongtian",@"Desktop" ,nil];
NSString *path = [NSString pathWithComponents:comArrat];
NSLog(@"path %@",path);
NSArray *arra = [path pathComponents];
}
1.拼接数组
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee", nil];
NSArray *muArray = [NSArray arrayWithObjects:@"11",@"22",@"33",@"44",@"55", nil];
NSLog(@"合并的数组是 %@",[arr arrayByAddingObjectsFromArray:muArray]);
2.把数组转成字符串
NSArray *muArray = [NSArray arrayWithObjects:@"11",@"22",@"33",@"44",@"55", nil];
NSLog(@"mutalbe %@",[muArray componentsJoinedByString:@" "]);
#pragma mark NSString扩展名处理
void externsion() {
NSString *str = @"User/Rogntian.text";
NSLog(@"文件的扩展名 %@", [str pathExtension]);
NSLog(@"%@",[str stringByDeletingPathExtension]);
NSLog(@"%@",[@"abb" stringByAppendingPathExtension:@"mov"]);
}
#pragma mark 其他用法
void other() {
unichar c = [@"rongtian" characterAtIndex:3];
NSLog(@"%c",c);
}
// ============================= <NSMutableString> ===================================
#pragma mark 可变字符串的创建
void stringCreate() {
NSMutableString *str = [[NSMutableString alloc]initWithCapacity:10];
// 设置字符串的内容
[str setString:@"2356"];
// 拼接一个字符串
[str appendString:@"789"];
// 查找 356 的nsrange
NSRange range = [str rangeOfString:@"356"];
[str replaceCharactersInRange:range withString:@"11111"];
// 插入字符串
[str insertString:@"pola" atIndex:3];
// 删除字符串
range = [str rangeOfString:@"356"];
[str deleteCharactersInRange:range];
}
小结:
1)rangeOfString:截取指定字符串的长度;
2) substringToIndex:7:截取从0 索引到指定索引(7)长度的字符串
3) substringFromIndex:9:截取从指定索引(9)到末尾长度的字符串
4) NSRange range = NSMakeRange(0,7);截取从指定索引(0)到指定(7)长度的字符串
5) substringWithRange:range:截取从指定索引(0)到指定(7)长度的字符串
6 )isEqualToString:@"p://www":比较字符串包含关系,区分大小写
7) stringWithFormat:格式化字符串。
void findSubString(){
NSString *filename = @"config.ini";
NSString *escapedPath = @"/Users/config.ini";
//在escapedPath中查找filename
//NSRange iStart = [escapedPath rangeOfString :filename];
NSRange iStart = [escapedPath rangeOfString: filename options:NSCaseInsensitiveSearch];
// NSLog(@"iStart length is %@:",iStart.length);
// NSLog(@"iStart location is %@:",iStart.location);
if (iStart.length > 0){
//获取从escapedPath开始位置到iStart.location-1长度的子字符串
NSString *subStr = [escapedPath substringToIndex:iStart.location-1];
NSLog(@"subStr:%@",subStr);
//获取从escapedPath从iStart.location+1开始到末尾的子字符串
NSString *extension = [escapedPath substringFromIndex:iStart.location];
NSLog(@"extension:%@",extension);
NSString *url = @"http://www.sevenuc.com";
NSRange range = NSMakeRange(3,7);
NSString* prefix = [url substringWithRange:range];
NSLog(@"prefix is:%@",prefix);
if([prefix isEqualToString:@"p://www"])
{
NSLog(@"prefix is equal %@",prefix);
}
else {
NSLog(@"prefix is not equal %@",prefix);
}
//获取url从0开始共7个字符的子字符串
if ( [prefix isEqualToString:@"http://"] )
NSLog(@"http prefix found");
}
}
void formatString(){
int documentId=100;
NSString *documentFileName=@"test.doc";
NSString *requestSring=[NSString stringWithFormat:@"<files><fileid>%d</fileid><filename>%@</filename></files>",documentId,documentFileName];
NSLog(@"requestString:%@",requestSring);
}