Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1246231
  • 博文数量: 177
  • 博客积分: 5493
  • 博客等级: 上校
  • 技术积分: 5802
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-05 15:13
个人简介

炼狱,是为追逐光芒

文章分类

全部博文(177)

文章存档

2017年(1)

2016年(3)

2015年(9)

2014年(5)

2013年(23)

2012年(59)

2011年(45)

2010年(32)

分类: iOS平台

2013-09-30 22:31:46


1.创建NSString对象

点击(此处)折叠或打开

  1. void stringCreate() {
  2.     //这种方式创建,不需要释放内存
  3.     NSString *str1 = @"A String";//
  4.     //
  5.     NSString *str2 = [[NSString alloc] init];
  6.     str2 = @"B String";
  7.     [str2 release];
  8.     
  9.     NSString *str3 = [[NSString alloc]initWithString:@"C string!"];
  10.     [str3 release];
  11.     
  12.     //静态方法创建对象,不需要管理内存
  13.     str3 = [NSString stringWithString:@"c string!"];
  14.     
  15.     NSString *str4 = [[NSString alloc] initWithUTF8String:"D string!"];
  16.     [str4 release];
  17.     
  18.     NSString *str5 = [[NSString alloc] initWithFormat:
  19.                       @"my age is %i and height is %.2f",28,1.65f];
  20.     NSLog(@"str5:%@",str5);
  21.     [str5 release];
  22. }


2.NSString的导入与导出
:从文件或url读取内容,以及写文件

点击(此处)折叠或打开

  1. void stringCreate2(){
  2.     NSString *path=@"/Users/luteresa/Desktop/hello.txt";
  3.     //NSString *str1 = [NSString stringWithContentsOfFile:path];
  4.     NSError *perror;
  5.     NSString *str2 = [NSString stringWithContentsOfFile:path encoding:(NSUTF8StringEncoding) error:&perror];
  6.     if (perror) {
  7.         NSLog(@"读取错误:%@",perror);
  8.     } else {
  9.         NSLog(@"%@",str2);
  10.     }
  11. }
  12. void stringCreate3(){
  13.     NSString *path = @"/Users/luteresa/Desktop/abc/abc.txt";

  14.     //NSURL *url = [NSURL URLWithString:@"file:///Users/luteresa/Desktop/abc.txt"];
  15. // NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
  16. // NSString *str2 = [NSString stringWithContentsOfURL: url encoding:NSUTF8StringEncoding error:nil];
  17. // //NSLog(@"%@",str2);
  18.     NSString *str = @"123456";
  19.     NSError *perror;
  20.     //[perror localizedDescription];
  21.     [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&perror];
  22.     if (perror) {
  23.         NSLog(@"写入失败,%@", [perror localizedDescription]);
  24.     } else {
  25.         NSLog(@"写入成功");
  26.     }
  27. }
  28. void stringToFile(){
  29.     NSString *path = @"/Users/luteresa/Desktop/test.txt";
  30.     NSString *str1 = @"123457890";
  31.     [str1 writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
  32. }

3.NSString常用方法:

(1) 大小写处理

点击(此处)折叠或打开
     (NSString *)uppercaseString;  //全部转为大写字符

  1. (NSString *)lowercaseString;  //全部转为小写字母
  2. (NSString *)capitalizedString;//首字符变大写,其他变小写

(2)字符串比较

点击(此处)折叠或打开

  1. void compare() {
  2.     // 检测字符串的内容是否相同
  3.     BOOL result = [@"abc" isEqualToString:@"abc"];
  4.     NSLog(@"%i", result);
  5.     
  6.     // NSOrderedAscending 右边的字符串比左边大
  7.     // NSOrderedSame 两个字符串的内容相同
  8.     // NSOrderedDescending 左边的字符串比右边的大
  9.     NSComparisonResult result2 = [@"abc" compare:@"Abc"];
  10.     if (result2 == NSOrderedSame) {
  11.         NSLog(@"两个字符串的内容相同");
  12.     } else if (result2 == NSOrderedAscending) {
  13.         NSLog(@"右边 > 左边");
  14.     } else if (result2 == NSOrderedDescending) {
  15.         NSLog(@"右边 < 左边");
  16.     }
  17. }

还有一个忽略大小写的比较方法,用法余compare一样

点击(此处)折叠或打开

  1. - (NSComparisonResult)caseInsensitiveCompare:(NSString *)string;

(3) 
搜索字符串

点击(此处)折叠或打开

  1. void search() {
  2.     NSString *str = @"123456456.txt";
  3.     
  4.     NSLog(@"是否以22开头:%i", [str hasPrefix:@"22"]);
  5.     NSLog(@"是否以txt结尾:%i", [str hasSuffix:@"txt"]);
  6.     
  7.     // 搜索字符串
  8.     NSRange range = [str rangeOfString:@"456"];
  9.     // range.length == 0
  10.     if (range.location == NSNotFound) {
  11.         NSLog(@"不能找到");
  12.     } else {
  13.         NSLog(@"找到的范围是:%@", NSStringFromRange(range));
  14.     }
  15.     
  16.     // 从尾部开始搜索字符串
  17.     range = [str rangeOfString:@"456" options:NSBackwardsSearch];
  18.     NSLog(@"%@", NSStringFromRange(range));
  19.     
  20.     // 指定范围进行搜索
  21.      range = [str rangeOfString:@"456" options:NSBackwardsSearch range:NSMakeRange(1, 10)];
  22.     NSLog(@"%@", NSStringFromRange(range));}


(4) 字符串截取

点击(此处)折叠或打开

  1. void subString() {
  2.     NSString *str = @"123456";
  3.     
  4.     // 从索引3开始截取到尾部(包括3)
  5.     NSLog(@"%@", [str substringFromIndex:3]);
  6.     
  7.     // 从头部开始截取到索引3之前(不包括3)
  8.     NSLog(@"%@", [str substringToIndex:3]);
  9.     
  10.     // 指定范围进行截取
  11.     NSRange range = NSMakeRange(2, 3);
  12.     NSLog(@"%@", [str substringWithRange:range]);
  13.     
  14.     NSString *str2 = @"a-b-c-d-5";
  15.     NSArray *array = [str2 componentsSeparatedByString:@"-"];
  16.     NSLog(@"%@", array);
  17.     
  18.     NSString *str3 = [array objectAtIndex:0];
  19.     NSLog(@"%@", str3);
  20. }

(5)#pragma mark 与路径相关


点击(此处)折叠或打开

  1. void pathTest() {
  2.     // 快速创建一个自动释放的数组
  3.     NSMutableArray *components = [NSMutableArray array];
  4.     [components addObject:@"Users"];
  5.     [components addObject:@"MJ"];
  6.     [components addObject:@"Desktop"];
  7.     // 将数组中的所有字符串拼接成一个路径
  8.     NSString *path = [NSString pathWithComponents:components];
  9.     NSLog(@"%@", path);
  10.     
  11.     // 将路径分解成一个数组
  12.     NSArray *cmps = [path pathComponents];
  13.     NSLog(@"%@", cmps);
  14.     
  15.     // path是一个字符串常量,是不可变的
  16.     path = @"/users/mj/test";
  17.     // 判断是够为绝对路径(依据是前面有无/
  18.     NSLog(@"%i", [path isAbsolutePath]);
  19.     NSLog(@"最后一个目录:%@", [path lastPathComponent]);
  20.     // 删除最后一个目录
  21.     NSLog(@"%@", [path stringByDeletingLastPathComponent]);
  22.     // 在最后面拼接一个目录
  23.     NSLog(@"%@", [path stringByAppendingPathComponent:@"abc"]);
  24. }

(6)#pragma mark 拓展名处理

点击(此处)折叠或打开

  1. void extension() {
  2.     NSString *str = @"/User/MJ/test.txt";
  3.     
  4.     NSLog(@"拓展名:%@", [str pathExtension]);
  5.     // 删除拓展名
  6.     NSLog(@"%@", [str stringByDeletingPathExtension]);
  7.     // 添加拓展名
  8.     NSLog(@"%@", [@"abc" stringByAppendingPathExtension:@"mp3"]);

  9.  //修改文件名
  10.     NSString *tmp,*str2 = @"/User/leon/hello.txt";
  11.     NSString *extensionName =[str2 pathExtension];
  12.    tmp = [[[[str2 stringByDeletingPathExtension]stringByDeletingLastPathComponent]
  13.       stringByAppendingPathComponent:@"world"]stringByAppendingPathExtension:extensionName];
  14.     
  15.     NSLog(@"%@",tmp);
  16. }

(7)#pragma mark 其他用法,NSString类与基本类型转换等

点击(此处)折叠或打开

  1. void other() {
  2.     NSString *str = @"12";
  3.     int a = [str intValue];
  4.     NSLog(@"%i", a);
  5.     
  6.     // 计算字数,不是计算字符数
  7.     NSLog(@"length=%zi", [@"我是字符串123" length]);
  8.     
  9.     // 取出对应的字符
  10.     unichar c = [@"abc" characterAtIndex:0];
  11.     NSLog(@"%c", c);
  12.     
  13.     // 返回C语言中的字符串
  14.     const char *s = [@"abc" UTF8String];
  15.     NSLog(@"%s", s);
  16. }

NSMutableString:NSString子类,可变字符串

点击(此处)折叠或打开

  1. #pragma mark 可变字符串的创建
  2. void stringCreate() {
  3.     // 预先分配10个字数的存储空间
  4.     NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10];
  5.     // 设置字符串内容
  6.     [str setString:@"1234"];
  7.     
  8.     // 拼接一个字符串
  9.     [str appendString:@"567"];
  10.     // 拼接字符串
  11.     [str appendFormat:@"age is %i and height is %.2f", 27, 1.55f];
  12.     
  13.     // 替换字符串
  14.     NSRange range = [str rangeOfString:@"height"];
  15.     //NSRange range = NSMakeRange(7, 3);
  16.     [str replaceCharactersInRange:range withString:@"no"];
  17.     
  18.     // 插入字符串
  19.     [str insertString:@"abc" atIndex:2];
  20.     
  21.     // 删除字符串
  22.     range = [str rangeOfString:@"age"];
  23.     [str deleteCharactersInRange:range];
  24.     
  25.     NSLog(@"%@", str);
  26.     
  27.     // 释放对象
  28.     [str release];
  29. }






阅读(1551) | 评论(0) | 转发(0) |
0

上一篇:OC语法--NSNumber对象

下一篇:OC语法--数组类

给主人留下些什么吧!~~