Foundation - NSString

 

/*
*字符串写入文件:
*/
void stringExport()
{
  NSString *str = @"ha";
  NSString *path = @"/Users/apple/Desktop/mj.txt";
  NSError *error = nil;

  // 如果文件夹不存在,会写入失败
  // 如果文件夹存在,文件不存在,会自动创建文件
  // 每次写入都会覆盖以前的内容

  // atomically :YES: 原子性操作,全部内容写入成功才会产生新的内容。如果中途写入失败,就回滚操作。
  // NO : 非原子性,写多少算多少

  [str writeToFile:path
     atomically:NO
       encoding:NSUTF8StringEncoding
                error:&error];

  if (error) { // 有错误信息
    NSLog(@"写入失败:\n%@", [error localizedDescription]);
  } else { // 没有错误信息
    NSLog(@"写入成功");
  }
}

 

/*
*字符串的比较处理
*/
  NSString *name = @"Jake";
  NSString *name2 = @"Jack";

  // 比较内容是否相同,不比较内存地址
  //BOOL e = [name isEqualToString:name2];

  NSComparisonResult result = [name compare:name2];
  if (result == NSOrderedSame)
  {
    NSLog(@"name和name2内容一样");
  } else if (result == NSOrderedAscending)
    // 右边的字符串比左边大
  {
    NSLog(@"name2>name");
  } else { // NSOrderedDescending
    NSLog(@"name>name2");
  }

 

/*
*大小写处理
*/
  NSString *str = @"abcTAd";
  NSLog(@"str=%@", str);
  NSLog(@"大写=%@", [str uppercaseString]);
  NSLog(@"小写=%@", [str lowercaseString]);

  // NSString对象是不可变的
  NSString *str = @"qq=1234";
  str = @"123213"; //这里不能赋值。

 

/*
*字符串截取
*/
void stringSub()
{
  NSString *str = @"http://im.qq.com?QQ=93232&pwd=45545456";

  // 先计算QQ=的范围
  NSRange qqRange = [str rangeOfString:@"QQ="];
  // QQ号码的开始位置
  NSUInteger location = qqRange.location + qqRange.length;
  // QQ号码的长度 == &的位置 - QQ号码的开始位置
  NSUInteger length = [str rangeOfString:@"&"].location - location;

  NSString *qq = [str substringWithRange:NSMakeRange(location, length)];
  NSLog(@"截出QQ=%@", qq);

  NSRange pwdRange = [str rangeOfString:@"pwd="];
  // 密码的开始位置
  NSUInteger pwdLocation = pwdRange.location + pwdRange.length;
  // 密码的长度 == 总长度 - 密码的开始位置
  NSUInteger pwdLength = str.length - pwdLocation;

  //NSString *pwd = [str substringWithRange:NSMakeRange(pwdLocation, pwdLength)];

  // 从某个位置开始,一直截取到字符串结尾
  NSString *pwd = [str substringFromIndex:pwdLocation];

  // 从字符串的首位置开始,一直截取到某个位置
  // [str substringToIndex:10];

  NSLog(@"截出密码=%@", pwd);
}

 

/*
*字符串搜索
*/
void stringSearch()
{
  /*
  QQ: 123456
  密码: 123456
  */
  NSString *str = @"http://im.qq.com?QQ=123456&pwd=123456";

  // 搜索QQ=在str中的范围
  NSRange range = [str rangeOfString:@"QQ="];
  //NSLog(@"%@", NSStringFromRange(range));

  // 如果找不到对应的字符串,length返回0,location=NSNotFound
  NSRange range2 = [str rangeOfString:@"https://"];
  /*
  if (range2.length == 0)
  {
    NSLog(@"https://找不到");
  }
  */
  //NSLog(@"%@",NSStringFromRange(range2));

  // 判断是否以ttp开头,如果是,就返回YES(1),否则,返回NO(0)
  BOOL hasP = [str hasPrefix:@"ttp"];
  NSLog(@"%d", hasP);

  // 判断是否以.txt结尾
  BOOL hasS = [@"abc.txt" hasSuffix:@".txt"];
}

 

/*
*字符串创建
*/
void stringCreate()
{
  // 1.最快的字符串创建方式
  NSString *str = @"itcast"; // 自动释放

  // 2.
  NSString *str2 = [[NSString alloc] initWithString:@"123123"];
  [str2 release];

  // 等价于str22 = @"12312323"; 自动释放
  NSString *str22 = [NSString stringWithString:@"12321312"];

  // 3.
  NSString *str3 = [[NSString alloc] initWithFormat:@"age is %d", 10];
  NSLog(@"str3=%@", str3);
  [str3 release];

  // 自动释放
  NSString *str4 = [NSString stringWithFormat:@"age is %d", 20];

  // 4.C语言字符串 <--> OC字符串
  // C字符串 --> OC字符串
  NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];
  // OC字符串 --> C字符串
  const char *cs = [s4 UTF8String];

  // 5.从文件中读取
  NSString *path = @"/Users/apple/Desktop/abc.txt";
  NSError *error = nil; // 一定要先清空
  NSString *str6 = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding  error:&error];
  // 文件读取成功,error就为nil
  // 文件读取失败,error就不为nil,error包含了详细的错误信息
  if (error) // 说明有错误
  {
    // 返回主要错误信息
    NSLog(@"文件读取失败:\n%@", [error localizedDescription]);
    //NSLog(@"文件读取失败:\n%@", error);
  } else { // 说明没有错误
    NSLog(@"文件读取成功:\n%@", str6);
  }

  [str6 release];


  // http://www.baidu.com

  // URL的格式: 协议头://全路径
  // 网络资源的协议头:http
  // 本地文件的协议头:file
  // ftp服务器资源的协议提:ftp

  // URL : 代表着一种资源,每一个资源都有自己唯一的URL地址

  //NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

  //NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/aaa.txt"];

  // 这里不用增加file://协议头
  NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/aaa.txt"];

  NSString *str7 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

  NSLog(@"str7=\n%@", str7);

  [str7 release];

  //[NSString stringWithContentsOfURL:<#(NSURL *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError **)#>];
}

 

 

posted @ 2013-09-19 13:07  tzktzk1  阅读(234)  评论(0编辑  收藏  举报