NSString的一些用法

来源:互联网 发布:mac上的翻墙软件 编辑:程序博客网 时间:2024/06/08 02:47

字符串的创建

  • 通过字符串常量创建,字符串对象存储在常量区
    NSString *str = @"AA";
  • 如果通过allocinitWithFormat、stringWithFormat创建,字符串对象存储在堆区
    NSString *str1 = [[NSString alloc]initWithFormat:@"BB"];    NSString *str2 = [NSString stringWithFormat:@"CC"];
  • 如果通过allocinitWithString,这个方法是通过copy返回一个字符串,而copy分为深拷贝和浅拷贝,如果是深拷贝会创建一个新对象,如果是浅拷贝则不会创建一个新对象,而是直接返回被拷贝的对象的地址,而allocinitWithString正是浅拷贝
    NSString *str3 = [[NSString alloc]initWithString:@"DD"];

字符串的比较

NSString *a = @"abce"; NSString *b = @"abcd"; //比较俩个字符串的内容    BOOL flag = [a isEqualToString:b];    NSLog(@"%i",flag);     //比较俩个字符串的地址    BOOL flag1 = a == b;    NSLog(@"%p--%p",&a,&b);    NSLog(@"%i",flag1);    //比较俩各字符串的大小    NSOrderedAscending = -1,    NSOrderedSame,     NSOrderedDescending    switch ([a compare:b]) {        case -1:            NSLog(@"前面小于后面");            break;        case 0:            NSLog(@"相等");            break;        case 1:            NSLog(@"前面大于后面");            break;        default:            break;    }    //忽略大小写    NSOrderedAscending = -1,    NSOrderedSame,     NSOrderedDescending    switch ([a caseInsensitiveCompare:b]) {        case -1:            NSLog(@"前面小于后面");            break;        case 0:            NSLog(@"相等");            break;        case 1:            NSLog(@"前面大于后面");            break;        default:            break;    }

字符串的搜索

    NSString *string = @"https://abcdsdfghj34567890.txt";    //判读以什么开头    if ([string hasPrefix:@"https:"]){        NSLog(@"yes");    }    //判读以什么结尾    if ([string hasSuffix:@"txt"]){        NSLog(@"yes");    }    NSRange range = [string rangeOfString:@"345"];    NSLog(@"location=%lu,length = %lu",(unsigned long)range.location,(unsigned long)range.length);

字符串的截取

 NSString *string = @"<head>title</head>";    //静态截取    NSRange range = NSMakeRange(6, 3);//    range.location = 6//    range.length = 3;    NSString *str = [string substringWithRange:range];    NSLog(@"%@",string);    NSLog(@"%@",str);    //动态截取    //1、动态获取起始位置    NSUInteger location = [string rangeOfString:@">"].location + 1;    //2、动态获取长度(rangeOfString是从左至右,只要找到就不找了)    NSUInteger length = [string rangeOfString:@"</"].location - location;    NSRange range1 = NSMakeRange(location, length);    NSString *str1 = [string substringWithRange:range1];    NSLog(@"%@",string);    NSLog(@"%@",str1);    //从什么地方开始截取,一直截取到最后    NSString *str2 = [string substringFromIndex:3];    //从开头开始截取,一直截取到什么位置    NSString *str3 =  [string substringToIndex:6];    NSLog(@"%@",str2);    NSLog(@"%@",str3);

字符串的替换

 NSString *string = @"<head>title</head>";    NSString *str = [string stringByReplacingOccurrencesOfString:@"title" withString:@"button"];    NSLog(@"%@",string);    NSLog(@"%@",str);

字符串和路径

    NSString *string = @"/Users/user/Desktop/APPS.txt";    NSLog(@"%@",string);    if([string isAbsolutePath]){        NSLog(@"绝对路径");    }    //获取文件路径中最后一个目录(本质是获取路径中最后一个/后面的内容)    NSString *str = [string lastPathComponent];    NSLog(@"%@",str);    //删除文件路径中最后一个目录(本质是删除路径中最后一个/后面的内容)    NSString *str1 = [string stringByDeletingLastPathComponent];    NSLog(@"%@",str1);    //给文件路径添加一个目录(本质是给路径末尾加上一个/和指定内容,若路径后面有多个,那么会删除多个,最终只保留一个)    NSString *str2 = [string stringByAppendingPathComponent:@"img"];    NSLog(@"%@",str2);    //获取路径中文件扩展名(本质是从字符串末尾开始查找,截取第一个. 后面的内容)    NSString *str3 = [string pathExtension];    NSLog(@"%@",str3);    //删除路径中文件扩展名(本质是从字符串末尾开始查找,删除第一个. 后面的内容)    NSString *str4 = [string stringByDeletingPathExtension];    NSLog(@"%@",str4);    //添加路径中文件扩展名(本质是从字符串末尾开始查找,添加第一个. 和指定的内容)    NSString *str5 = [string stringByAppendingPathExtension:@"jpg"];    NSLog(@"%@",str5);

字符串转换

   NSString *string = @"aBc";    NSLog(@"%@",string);    //转大写    NSLog(@"%@",string.uppercaseString);    //转小写    NSLog(@"%@",string.lowercaseString);    //首字母转大写    NSLog(@"%@",string.capitalizedString);    //字符串转基本数据类型    NSString *string1 = @"123";    NSLog(@"%ld",(long)string1.integerValue);    //C语言字符串转OC字符串    char *cStr = "apple";    NSLog(@"%@",[NSString stringWithUTF8String:cStr]);    //OC语言字符串转C字符串    const char *cStr2 = [string UTF8String];    NSLog(@"%s",cStr2);
原创粉丝点击