关于NSString的方法知识简单了解

简单分享下,希望大牛们多多指点迷津,逐步修改,完善不足支持。借鉴之处,还请谅解

void test(NSString **str){  //C语言函数,指向指针

    *str=@"123";

}

int main(int argc, const char * argv[]) {

    @autoreleasepool {

#pragma mark NSString创建

        NSString *string=@"string";  //char *s="string";C语言的字符串

        //这种方式创建不需要内存释放

        NSString *string1=[NSString stringWithString:@"string"];

        NSString *string2=[NSString stringWithFormat:@"string"];

        NSString *string3=[NSString stringWithUTF8String:"string"];

                                                 //传入C语言的字符串

        //这种方式创建:需要管理内存释放

        NSString *str0=[[NSString alloc]initWithFormat:@"string"];

        NSString *str1=[[NSString alloc]initWithString:@"str0"];

        NSString *str2=[[NSString alloc]initWithUTF8String:"string"];

        //前面创建字符串未被释放,后面的创建会释放过渡,造成野指针错误

        

        NSError *error;    //定义一个NSError变量

         NSString *path=@"/Users/administrator/Desktop/void.txt";

        NSString *st=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];                    //读取文件路径中的文件内容,<注意是否内读曲中文字>

        

        NSURL *url=[NSURL URLWithString:@"https://www.baidu.com/?tn=92765401_hao_pg"];

        //读取地址路径的内容:file://  或远程文本 https://

        //file:///Users/administrator/Desktop/void.txt

        NSString *st1=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

        NSLog(@"%@",st1);

        

#pragma mark 指向指针和指针

        NSString *s=@"456";  //指针用法

        test(&s);          // 传递指针地址,改变变量指向的对象   **(&s) = *s = @"123"

        NSLog(@"%@",s);    //   123

         

#pragma mark NSString常用方法

        NSString *path1=@"/Users/administrator/Desktop/test.txt";

        [string writeToFile:path1 atomically:YES encoding:NSUTF8StringEncoding error:&error];

                //yes 代表进行原子性操作,也就会创建一个中间的临时文件

        if(error){

            NSLog(@"写入失败");      //如果文件夹不存在

        }else {

            NSLog(@"写入成功");       //如果文件不存在,会自动创建

        }                   //字符串导出到文件路径中的文件内容

#pragma mark NSString大小写

        str0=[string uppercaseString];   //全大写

        str0=[string lowercaseString];   //全小写

        str0=[string capitalizedString];  //首字母大写

#pragma mark NSString比较

        BOOL result=[str1 isEqualToString:str2];  //比较字符串内容是否相同,1/0

        NSComparisonResult result1=[str1 compare:str2];

        //结果为NSOrderedAscending 生序(右边大) NSOrderedSame 相同, NSOrderedDescending 降序(左边大)

#pragma mark NSString搜索

        BOOL result2=[string hasPrefix:@"str"];  //是否以 str 开头

        BOOL result3=[string hasSuffix:@"ing"];  //是否以 ing 结尾

        

        NSRange range=[string rangeOfString:@"rin"];  //从头搜索 rin 在string中的位置、宽度

        if(range.location==NSNotFound){

            NSLog(@"不能找到");

        }

        range=[string rangeOfString:@"in" options:NSBackwardsSearch];//从尾部开始搜索 in

        range=[string rangeOfString:@"in" options:NSBackwardsSearch range:range];//在range范围 搜索

        

        string=[string substringFromIndex:2];  //从索引2 开始截取

        string=[string substringToIndex:2];   //从0开始截取到 索引2之前(不包括2)

        string=[string substringWithRange:range];   //从指定范围截取

        

        NSString *stringto=@"a-b1-c-d";

        NSArray *array=[stringto componentsSeparatedByString:@"-"];  //将字符串分割成数组元素,逗号隔开

        

#pragma mark NSString与路径相关

        NSMutableArray *ar=[NSMutableArray array];

        [ar addObject:@"Users"];

        [ar addObject:@"administrator"];

        [ar addObject:@"Desktop"];

        NSString *pth=[NSString pathWithComponents:ar];   //将数组中所有字符串拼接成一个路径

    

        NSArray *arr=[pth pathComponents];          //将路径分解成一个数组

        

        pth=@"/Users/administrator/Desktop";  //pth是一个字符串常量,不可变

        

        BOOL result4=[pth isAbsolutePath];  //判断是否是绝对路径(依据前有无/)

        

        string=[pth lastPathComponent];  //返回路径的最后一个目录

        

        string=[pth stringByDeletingLastPathComponent]; //删除最后一个目录

        

        string=[pth stringsByAppendingPaths:@"abc"]; //在最后拼接一个目录

        

#pragma mark 拓展名

        string=@"text.txt";

        string=[string pathExtension];                          //返回拓展名 txt

        string=[string stringByDeletingPathExtension];          //删除拓展名 .txt

        string=[string stringByAppendingPathExtension:@"mp3"];  //添加拓展名 .mp3

        

        string=@"12";

        int a=[string intValue];    //转换成整型

        unsigned int b=string.length;     //计算字数

        unichar c=[@"abcdef" characterAtIndex:2];   //取出对应的字符

        const char  *d=[string UTF8String];    //返回C语言的字符串

        

#pragma mark NSMutableString

        NSMutableString *s1=[[NSMutableString alloc]initWithCapacity:10];

                  //指定容量,预先分配10个字符串空间,提高效率

        [s1 setString:@"123"];      //设置字符串内容

        [s1 appendString:@"456"];   //拼接字符串

        [s1 appendFormat:@"age is %i",18];  //拼接字符串(格式输出)

        NSRange ran=[s1 rangeOfString:@"age"];  //找到age 的范围

        [s1 replaceCharactersInRange:ran withString:@"number"]; //number 替换age

        [s1 insertString:@"789" atIndex:6];   //在索引 位置插入

        [s1 deleteCharactersInRange:ran];     //删除指定范围 的字符串

  

posted @ 2016-05-22 08:59  Miracle_H  阅读(162)  评论(0编辑  收藏  举报