博客
关于我
OC字符串方法汇总
阅读量:797 次
发布时间:2023-02-22

本文共 4413 字,大约阅读时间需要 14 分钟。

OCString和CString的区别及NSString的使用方法

在Objective-C开发中,字符串的处理是非常常见的操作。OCString、CString以及NSString作为三种不同的字符串类型,各自有其特点和使用场景。本文将深入探讨这三者的区别,并详细讲解NSString的使用方法。

一、OCString和CString的区别

OCString(Objective-C String)和CString(C String)是Objective-C开发中两种不同的字符串类型。OCString是Objective-C对字符串的封装,支持丰富的方法操作,而CString则是C语言中的字符串类型,主要用于底层操作。

  • OCString的创建 OCString可以通过alloc创建: NSString *tempString = [NSString alloc]; // 或者更常用的方式: NSString *tempString = @"hello"; NSLog(@"tempString is %@", tempString);

  • CString的创建 C语言的字符串在Objective-C中通常通过NSString来处理。要使用C语言字符串,可以使用initWithCString方法: NSString *string2 = [[NSString alloc] initWithCString:"i am pig" encoding:NSUTF8StringEncoding]; NSLog(@"string2 is %@", string2);

  • 字符串的格式化赋值 使用format方法可以实现字符串的格式化拼接: NSString *string3 = [[NSString alloc] initWithFormat:@"%@ %@", @"i am", tempString]; NSLog(@"string3 is %@", string3); NSString *string4 = [[NSString alloc] initWithFormat:@"%@", @"我是好人"]; NSLog(@"string4 is %@", string4);

  • 二、NSString的所有方法

    A. 使用类方法创建OC字符串

  • 直接赋值 NSString *tempString = @"hello"; NSString *string5 = [NSString stringWithString:tempString]; NSLog(@"string5 is %@", string5);

  • 使用C语言字符串赋值 NSString *string6 = [NSString stringWithCString:"我爱你" encoding:NSUTF8StringEncoding]; NSLog(@"string6 is %@", string6); NSString *string7 = [NSString stringWithFormat:@"我是%@", @"猪"]; NSLog(@"string7 is %@", string7);

  • B. 字符串的拼接

  • 使用format方法拼接 NSString *string8 = @"你好"; NSString *string9 = @"北京"; NSString *catString = [NSString stringWithFormat:@"%@,%@", string8, string9]; NSLog(@"catString is %@", catString);
  • 使用append和stringByAppending方法 NSString *catSecondString = [catString stringByAppendingString:@"我来了"]; NSLog(@"catSecondString is %@", catSecondString);
  • C. 字符串长度 获取字符串的长度: NSInteger stringLength = [aString length]; NSLog(@"aString 的长度是 %lu", stringLength);

    D. 判断字符串是否相等 使用isEqualToString方法比较两个字符串: NSString *first = @"我2"; NSString *second = @"我2"; BOOL isEqual = [first isEqualToString:second]; NSLog(@"%d", isEqual);

    E. 字符串比较

  • 常规比较 int result = [string1 compare:string2]; NSLog(@"%d", result);
  • 不区分大小写的比较 int result = [str1 compare:str2 options:NSCaseInsensitiveSearch]; NSLog(@"%d", result);
  • F. 大小写转换

  • 转大写 NSString *str1 = @"abcd"; NSString *upperStr = [str1 uppercaseString]; NSLog(@"upper is %@", upperStr);
  • 转小写 NSString *str2 = @"ABCD"; NSString *lowerStr = [str2 lowercaseString]; NSLog(@"lower is %@", lowerStr);
  • 首字母大写 NSString *str3 = @"sAfdnl"; NSString *capStr = [str3 capitalizedString]; NSLog(@"cap is %@", capStr);
  • G. 字符串查找

  • 查找"大好人" NSRange range = [str rangeOfString:@"大好人"]; if (range.location == NSNotFound) { NSLog(@"没找着"); } else { NSLog(@"location is %d, length is %d", range.location, range.length); }
  • 从后向前查找 NSRange range1 = [str rangeOfString:@"大好人" options:NSBackwardsSearch]; NSLog(@"location is %d, length is %d", range1.location, range1.length);
  • 判断前缀和后缀
    • 前缀检查 BOOL isHave21 = [str hasPrefix:@"12"]; if (isHave21) { NSLog(@"你赢了"); } else { NSLog(@"你输了"); }
    • 后缀检查 BOOL isHave09 = [str hasSuffix:@"90"]; if (isHave09) { NSLog(@"找到了"); } else { NSLog(@"木有怎么办"); }

    H. 字符串提取

  • 从头截取 NSString *topStr = [str substringToIndex:4]; NSLog(@"topStr is %@", topStr);
  • 从某一位置截取到末尾 NSString *endStr = [str substringFromIndex:8]; NSLog(@"endStr is %@", endStr);
  • 截取特定范围 NSRange range = [str rangeOfString:@"1234"]; if (range.location == NSNotFound) { NSLog(@"什么也不干"); } else { NSString *finalStr = [str substringWithRange:range]; NSLog(@"finalStr is %@", finalStr); }
  • 三、NSMutableString的所有方法

    NSMutableString是Objective-C中可变字符串的实现,它支持通过append、insert、delete等方法进行操作。由于NSMutableString是可变的,建议通过这些方法进行操作,而不是直接赋值。

  • 创建可变字符串 // alloc创建 NSMutableString *mutableStr = [[NSMutableString alloc] initWithCapacity:0]; // 类方法创建 NSMutableString *mutableStrClass = [NSMutableString stringWithCapacity:0];

  • 增加内容

    • 直接添加 [mutableStr appendString:@"123"]; NSLog(@"mutableStr after append: %@", mutableStr);
    • 格式化添加 [mutableStr appendFormat:@"%d", 11]; NSLog(@"mutableStr after appendFormat: %@", mutableStr);
    • 插入特定位置 [mutableStr insertString:@"我" atIndex:3]; NSLog(@"mutableStr after insert: %@", mutableStr);
    1. 删除内容
      • 删除区间 [mutableStr deleteCharactersInRange:NSMakeRange(2, 3)]; NSLog(@"mutableStr after delete: %@", mutableStr);
      1. 修改内容
        • 全改 [mutableStr setString:@"abcdefg"]; NSLog(@"mutableStr after setString: %@", mutableStr);
        • 替换区间内容 [mutableStr replaceCharactersInRange:NSMakeRange(3, 2) withString:@"一二三四"]; NSLog(@"mutableStr after replace: %@", mutableStr);

        通过以上方法,可以方便地进行字符串的操作和管理。在实际开发中,合理选择使用哪种字符串类型和方法,取决于具体需求和性能考虑。

    转载地址:http://spsfk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现翻转图像augmentation算法(附完整源码)
    查看>>
    Objective-C实现老鼠迷宫算法(附完整源码)
    查看>>
    Objective-C实现聚类基本K均值算法(附完整源码)
    查看>>
    Objective-C实现自动查找和检索加密密钥算法(附完整源码)
    查看>>
    Objective-C实现自旋锁(附完整源码)
    查看>>
    Objective-C实现莫尔斯电码算法(附完整源码)
    查看>>
    Objective-C实现莱布尼兹级数求解π的近似值(附完整源码)
    查看>>
    Objective-C实现获取 Collatz 序列长度算法(附完整源码)
    查看>>
    Objective-C实现获取CPU温度(附完整源码)
    查看>>
    Objective-C实现获取daily horoscope每日星座运势算法(附完整源码)
    查看>>
    Objective-C实现获取GPU显卡信息(附完整源码)
    查看>>
    Objective-C实现获取HID设备列表 (附完整源码)
    查看>>
    Objective-C实现获取PE文件特征(附完整源码)
    查看>>
    Objective-C实现获取文件大小(字节数) (附完整源码)
    查看>>
    Objective-C实现获取文件头的50个字符(附完整源码)
    查看>>
    Objective-C实现获取文件最后修改时间(附完整源码)
    查看>>
    Objective-C实现获取文件末的50个字符(附完整源码)
    查看>>
    Objective-C实现获取本机ip及mac地址(附完整源码)
    查看>>
    Objective-C实现获取本机系统版本(附完整源码)
    查看>>
    Objective-C实现获取桌面应用程序图标位置 (附完整源码)
    查看>>