• oc 字符串的使用方法


     

    //字符串是特殊的对象 需要用copy 其他的对象可以用 copy 或 retain

     

    // NSMultibleString

      1、可变字符串 

      2、 用initWithString 来初始化并赋值并需要手动回收不能直接等号赋值

      3、有引用计数,遵循引用计数概念

     4、可以 增、 删、 改、 插,可以改变原来字符串内容。

     5、在使用父类NSString方法时 需要有接收者 因为NSString方法是有返回值的

    常用的函数有:

    - (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;

    - (void)deleteCharactersInRange:(NSRange)range;

    - (void)appendString:(NSString *)aString;

    - (void)appendFormat:(NSString *)format;

    - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString;  //  NSMakeRange(loc, length);

     

    // NSString

    1、不可变字符串 不能改字符串 只能增加 拼接 

    2、可以直接赋值 系统自动回收垃圾 

    3、不遵循引用计数概念

     4、可以在首尾部 增添字符串,不能删、 改、 插,不可改变原字符串中的内容。

    NSString *str1 = @"BeiJing";
    NSString *str2 = @"beijing";

    //全部转为大写
    NSLog(@"%@",[str1 uppercaseString]);

    //全部转为小写
    NSLog(@"%@",[str1 lowercaseString]);

    //首字母大写
    NSLog(@"%@",[str1 capitalizedString]);

    //比较两个字符串内容是否相同
    BOOL b =[str1 isEqualToString:str2];

    //两个字符串内容比较
    //NSOrderedAscending 右边 > 左边
    //NSOrderedSame 内容相同
    //NSOrderedDescending 左边 > 右边
    NSComparisonResult result = [str1 compare:str2];
    if (result == NSOrderedAscending) {
    NSLog(@"右边 > 左边");
    }else if(result == NSOrderedSame){
    NSLog(@"内容相同");
    }else if (result == NSOrderedDescending){
    NSLog(@"左边 > 右边");
    }

    //忽略大小写进行比较,返回值与compare一样
    result = [str1 caseInsensitiveCompare:str2];
    if (result == NSOrderedAscending) {
    NSLog(@"右边 > 左边");
    }else if(result == NSOrderedSame){
    NSLog(@"内容相同");
    }else if (result == NSOrderedDescending){
    NSLog(@"左边 > 右边");
    }

    //判断字符串是否以指定字符串开头
    [str1 hasPrefix:@"aaa"];
    //判断字符串是否以指定字符串结尾
    [str1 hasSuffix:@"aaa"];

    //判断字符串是否包含指定字符串,返回位置和长度
    NSRange range = [@"123456" rangeOfString:@"456"];
    NSLog(@"%@", NSStringFromRange(range));

    //反向搜索
    range = [@"123456456qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch];
    NSLog(@"%@",NSStringFromRange(range));

    //指定范围进行搜索
    range = NSMakeRange(0, 9);
    range = [@"123456456qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch range:range];
    NSLog(@"%@",NSStringFromRange(range));

    //字符串的截取
    NSString *str = @"123456789";
    NSLog(@"%@",[str substringFromIndex:3]);
    NSLog(@"%@",[str substringToIndex:6]);
    NSLog(@"%@",[str substringWithRange:NSMakeRange(3, 3)]);

    //用指定字符串分割字符串,返回一个数组
    NSArray *array = [@"1,2,3,4,5,6" componentsSeparatedByString:@","];
    NSLog(@"%@",array);

    //将数组中的字符串组合成一个文件路径
    NSMutableArray *components = [NSMutableArray array];
    [components addObject:@"Users"];
    [components addObject:@"CentralPerk"];
    [components addObject:@"Desktop"];
    NSString *path = [NSString pathWithComponents:components];
    NSLog(@"%@",path); //Users/CentralPerk/Desktop

    //将一个路径分割成一个数组
    NSArray *array1 = [path pathComponents];
    NSLog(@"%@",array1);

    //判断是否为绝对路径(依据:是否以'/'开始)
    path = @"/Users/CentralPerk/Desktop";
    NSLog(@"%i",[path isAbsolutePath]);

    //获取最后一个目录
    NSLog(@"%@",[path lastPathComponent]);

    //删除最后一个目录
    NSLog(@"%@",[path stringByDeletingLastPathComponent]);

    //拼接一个目录
    NSLog(@"%@",[path stringByAppendingPathComponent:@"aaa"]); ///Users/CentralPerk/Desktop/aaa
    NSLog(@"%@",[path stringByAppendingString:@"aaa"]); ///Users/CentralPerk/Desktopaaa
    NSLog(@"%@",[path stringByAppendingFormat:@"%@%@",@"b",@"c"]); ///Users/CentralPerk/Desktopbc

    //拓展名出来
    //获取拓展名,不带.
    NSString *str2 = @"Users/CentralPerk/Desktop/test.txt";
    NSLog(@"%@",[str2 pathExtension]);
    //添加拓展名,不需要带.
    NSLog(@"%@",[str2 stringByAppendingPathExtension:@"mp3"]);
    //删除拓展名,带.一块删除
    NSLog(@"%@",[str2 stringByDeletingPathExtension]);

    //字符串转为 int double float
    NSString *str3 = @"123";
    NSLog(@"%i",[str3 intValue]);
    NSLog(@"%zi",[str3 length]);

    //取出指定位置的字符
    unichar c = [str3 characterAtIndex:2];
    NSLog(@"%c",c);

    //转为C语言的字符串
    const char *s = [str3 UTF8String];
    NSLog(@"%s",s);

    //用问号将多个字符串连接起来

    NSArray *arr = [NSArray alloc]initWithObjects:str1,str2,str3,nil];

    NSString *str = [arr componentsJoinedByString:@"?"];

    //将字符串以指定字符串为标志分割

     NSString *str5 = @"we,she,he?hello?and,you?please";

    NSArray *arr2 = [str5 componentsSeparatedByString:@"?"];

    arr2 = (we,she,he,

        hello,

        and,you,

        please);

     //再利用分割即可获得 @“we” 字符串

     

    //类方法使用后不用手动释放 系统可以自动给释放掉

     

     

  • 相关阅读:
    【转载】Oracle实例和Oracle数据库(Oracle体系结构)
    【转载】Oracle 11g R2 for Win7旗舰版(64位)- 安装
    eclipse 中卸载插件的方法
    eclipse编辑jsp文件和javascript代码很卡解决办法
    ExtJS登陆页面涉及到的几个问题
    一个关于ExtJS4具体控件的详细教程
    ES6与React中this完全解惑
    for, for..in, in, for...of的区别
    Sublime Text3的react代码校验插件
    Sublime Text3中JSX支持Emmet快捷键
  • 原文地址:https://www.cnblogs.com/song-kl/p/4448441.html
Copyright © 2020-2023  润新知