iOS开发之oc(十七)--Foundation(2)NSString及简单的字符串读取和写入

NSString : 不可变字符串

NSMutableString : 可变字符串

 

// 重点注意:URL不能读取文件名为中文的文件,否则为null,读不出来,要换为英文

 // URL读取文件才是万能

 

下面是一些功能的代码

1.创建和读取

void stringCreate()
{
    /*
     1.字符串的创建的方法
     */
    NSString *s1 = @"jack";
    
  //NSString *s2 = [[NSString alloc] initWithString:@"jack"];
    
    NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10];
    
    // C字符串 --> OC字符串
    NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];
    // OC字符串 --> C字符串
    const char *cs = [s4 UTF8String];
    
    // 读取文件
    // NSUTF8StringEncoding 用到中文就可以用这种编码
    NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];
    
    
    // URL : 资源路径
    // 协议头://路径
    // file://
    // ftp://
    // http://weibo.com/a.png
    // http://www.baidu.com
    
    // 这是读取本地文件
    // NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];
    
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"];
    
    NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
   
 NSLog(@"s6=\n%@", s6);
    
    /*
     提供类方法可以快速返回一个对象给别人 ,就不需要alloc 。。。initwith。。。。很慢
     一般都会有一个类方法跟对象方法配对(类方法一般一类名开头----URLWithString..)
    
     [NSURL URLWithString:<#(NSString *)#>];
     [NSString stringWithFormat:@""];
     [NSString stringWithContentsOfFile:<#(NSString *)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>];
     
     */

}    

2.写入

void stringExport()
{
    // 写入字符串(尽量不要创建.rtf,会打不开)
    [@"Jack\nJack" writeToFile:@"/Users/apple/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    
    NSString *str = @"4234234";
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/my2.txt"];
    [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];
// atomically  原子性
    // 文件里面每一个换行都是 \n
}

3.简单运用

int main()
{
    
    NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"];
    // 拼接内容到s1的后面
    [s1 appendString:@" 11 12"];
    
    // 获取is的范围
    NSRange range = [s1 rangeOfString:@"is"];
    [s1 deleteCharactersInRange:range];
    
    NSString *s2 = [NSString stringWithFormat:@"age is 10"];
    
    NSString *s3 = [s2 stringByAppendingString:@" 11 12"];
    
    
    NSLog(@"s1=%@, s2=%@", s1, s2);
    
    return 0;
}

还有很多的运用,请参照官方文档,那才是真正的iOS之路,本源所在。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。