首页 > 代码库 > Foundation 框架中NSString and NSMutableString的详解

Foundation 框架中NSString and NSMutableString的详解

NSString:不可变字符串

  创建字符串的最简单的方式:

  NSString *str = @"itcast";  // 这个创建的是OC字符串  oc中的字符串都是NSString类的对象

  char *name = "itcast";  // 这个是c语言字符串

  NSLog(@"我在%@上课",str);  // %@是用来输出oc对象的

  NSLog(@"%s",name);  // %s是用来输出c语言字符串

 

  使用oc字符串的好处:

    以对象的形式操作字符串;

1     // 定义一个字符串2     NSString *str = @"jack";3     4     // 计算字符串中字符的个数并将结果输出5     NSLog(@"%ld",str.length);

 

字符串的创建:

  第一种:快速创建

  NSString *str = @"jack";

  第二种:以格式化的方式创建

  NSString *str = [[NSString alloc] initWithFormat:@"my age is %d", 20];  // 这个是使用对象方法

  NSString *str = [NSString stringWithFormat:@"my age is %d", 20];  // 这个是使用类方法

 

oc字符串和c语言字符串之间的相互装换

  

 1     // 这个是将一个c语言字符串转换位oc字符串 2     char *ch = "i love oc!"; 3      4     NSString *str1 = [NSString stringWithUTF8String:"i love oc!"]; 5     NSString *str2 = [NSString stringWithUTF8String:ch]; 6     NSLog(@"str1 = %@, str2 = %@", str1, str2); 7      8     // 这个是将oc字符串装换为c语言字符串 9     const char *newch1 = [str1 UTF8String];10     const char *newch2 = [str2 UTF8String];11     NSLog(@"newch1 = %s, newch2 = %s", newch1, newch2);

运算后的结果是:
  2015-01-05 20:53:46.820 Foundation框架[444:303] str1 = i love oc!, str2 = i love oc!
  2015-01-05 20:53:46.822 Foundation框架[444:303] newch1 = i love oc!, newch2 = i love oc!
  Program ended with exit code: 0

 

从文件中读取字符串:

  NSString *str = [NSString stringWithContentsOfFile:@"/Users/mac/Desktop/sb.txt" encoding:NSUTF8StringEncoding error:nil];  // 这个是一个类方法

  stringWithContentsOfFile:后面传入的是一个绝对路径;

  encoding:后面的参数是一种编码方式。当我们要读取的字符串中有中文的时候我们要使用的编码方式是:NSUTF8StringEncoding

  error:nil  表示,如果没有找到文件,放回结果是空 null。

将字符串写入文件: 

  NSString *str = @"i love oc!";

  [@"i love oc!" writeToFile:@"/Users/mac/Desktop/sb.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];

  [str writeToFile:@"/Users/mac/Desktop/sb.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];

  这两句的效果是一样的。  

  writeToFile:后面传入的是一个绝对路径

  atomically:YES 表示只有文件创建成功的时候才写入文件

  encoding:NSUTF8StringEncoding 当有中文的时候我们就使用这种编码方式

  error:nil 错误的时候返回空

  知识补充:

    协议头:资源路径  

    URL:资源路径

    file://  这个是文件路径。这里写的时候是有三个///

    ftp://  这个是服务器路径。

 

读取字符串的万能方式:

    

 

Foundation 框架中NSString and NSMutableString的详解