黑马程序员——OC热身——NSString、NSMutableString

来源:互联网 发布:g20对杭州的影响 知乎 编辑:程序博客网 时间:2024/05/21 08:00

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

–Foundation框架–

NSString

OC中的字符串

NSString的创建

//这种方式创建出来的字符串是不需要释放内存的NSString *str1 = @"String"; NSString *str2 = [[NSString alloc] init];str2 = @"String";[str2 release];NSString *str3 = [[NSString alloc] initWithString:@"String"];[str3 release];//不需要管理内存str3 = [NSString stringWithString:@"String"];NSString *str4 = [[NSString alloc] initWithUTF8String:"String"];[str4 release];str4 = [NSString stringInitWithUTF8String:"String"];NSString *str5 = [[NSString alloc] initWithFormat:@"My age is %i and height is %.2f",19,1.55f];[str5 release];str5 = [NSString stringInitWithFormat:@"My age is %i and height is %.2f",19,1.55f];

字符串的导出

NSString *str = @"123456";//如果文件不存在,会自动创建文件//如果文件夹不存在,会报错NSString *path = @"/Users/apple/Desktop/test.txt";NSError *error;//编码指定错误也会报错//YES代表要进行原子性操作,也就是会创建一个中间的临时文件[str writeToFile:path atomically:YESencoding:NSUTF8StringEncoding error:&error];if(error){    //[error localizedDescription]会返回主要的错误信息    NSLog(@"%@",[error localizedDescription]);}

字符串的读取

//定义一个NSError变量NSError *error;//从文件中读取文本//指定字符串编码为UTF-8NSString *path = @"/Users/apple/Desktop/test.txt";NSString *str1 = [NSString stringWithContentsOfFile:path                    encoding:NSUTF8StringEncoding error:&error];if(error){    NSLog(@"%@",error);}
//从URL中读取文本NSURL*url = [NSURL URLWithString:@"file:///Users/apple/Desktop/test.txt"];NSString *str2 = [NSString stringWithContentsOfURL:url                     encoding:NSUTF8StringEncoding error:&error];

其他常用方法

大小写处理

NSString *str = @"Hello World";//转成大写NSLog(@"大写:%@",[str uppercaseString]);//转成小写NSLog(@"小写:%@",[str lowercaseString]);//首字母变大写,其它字母都小写NSLog(@"小写:%@",[str capitalizedString]);

比较字符串

//比较两个字符串的内容是否相同BOOL res = [@"abc" isEqualToString:@"ABC"];//比较两个字符串的大小//NSOrderedAscending    //右边的字符串比左边大//NSOrderedSame //两个字符串内容相同//NSOrderedDescending   //左边的字符串比右边大NSCompareisonResult res2 = [@"abc" compare:@"Abc"];//忽略大小写进行比较NSCompareisonResult res3 = [@"abc" caseInsensitiveCompare:@"Abc"];

字符串搜索

NSString *str = @"123456.txt";NSLog(@"是否以12开头:%i",[str hasPrefix:@"12"]);NSLog(@"是否以txt结尾:%i",[str hasSubfix:@"txt"]);//查找字符串@"345"是否在字符串str内并返回一个NSRangeNSRange range = [str rangeOfString:@"345"];if(range.location == NSNotFound){    NSLog(@"找不到字符串");}//options:NSBackwardsSearch从尾部开始搜索NSRange range = [str rangeOfString:@"345" options:NSBackwardsSearch];if(range.location == NSNotFound){    NSLog(@"找不到字符串");}

字符串的截取

NSString *str = @"123456";//从索引3开始截取字符串到尾部(包括3)NSLog(@"%@",[str substringFromIndex:3]);//从字符串头部开始截取到索引3之前为止(不包括3)NSLog(@"%@",[str substringToIndex:3]);//指定范围进行截取NSRange range = NSMakeRange(2,3);NSLog(@"%@",[str substringWithRange:range]);//字符串切割NSString *str2 = @"1,2,3,4,5";NSArray *arr = [str2 componentsSeparatedByString:@","];NSLog(@"%@",arr);

字符串与路径

NSMutableArray *components = [NSMutableArray array];[components addObject:@"Users"];[components addObject:@"apple"];[components addObject:@"Desktop"];//将数组中的所有字符串拼接成一个路径NSString *path = [NSString pathWithComponents:components];//将路径分解成一个数组NSArray *cmps = [path pathComponents];//path是一个字符串常量,是不可变得path = @"Users/apple/Desktop";//判断是否为绝对路径(依据是前面有无/)NSLog(@"%i",[path isAbsolutePath]);//获得最后一个目录NSLog(@"最后一个目录:%@",[path lastPathComponent]);//删除最后一个目录NSLog(@"%@",[path stringByDeletingLastPathComponent]);//在最后面拼接一个目录NSLog(@"%@",[path stringByAppendingPathComponent:@"abc"]);

扩展名的处理

NSString *path = @"Users/apple/Desktop/abc.txt";//获取拓展名NSLog(@"扩展名:%@",[path pathExtension]);//删除拓展名NSLog(@"%@",[path stringByDeletingLastPathExtension]);//拼接拓展名NSLog(@"%@",[@"abc" stringByAppendingPathExtension:@"mp3"]);

其他用法

//NSString转换intNSString *str = @"12";int a = [str isValue];//计算字符串长度(字数,不是字符数)int len = [@"字符串" length];//取出对应的字符unichar c = [@"ABC" characterAtIndax:0];//返回C语言字符串const char *str2 = [@"ABC" UTF8String];

NSMutableString

NSString 是不可变得,不能删除字符或者添加字符。
NSMutableString是NSString的子类,称为“可变字符串”。

//预先分配10个字数的存储空间NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10];//设置字符串内容[str setString:@"1234"];//拼接一个字符串[str appendingString:@"567"];[str appendingFormat:@"age is %i and height is %.2f", 27,1.55f];//替换字符串NSRange range = [str rangeOfString:@"age"];[str replaceCharactersInRange:range withString:@"no"];//插入字符串[str insertString:@"abc" atIndex:2];//删除字符串range = [str rangeOfString:@"age"];[str deleteCharactersInRange:range];NSLog("%@",str);[str release];

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

0 0