OC字符串方法汇总
发布日期:2025-04-27 12:22:31 浏览次数:20 分类:精选文章

本文共 4319 字,大约阅读时间需要 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);

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

    上一篇:OC学习6——面相对象的三大特性
    下一篇:OC中关于给NSString 赋 nil和@""的区别

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2026年05月27日 21时41分09秒