【OC】NSString和NSMutableString

NSString和NSMutableString是Objective-C中用于处理字符串的两个常用类。NSString是不可变的字符串类,一旦创建后,其内容无法被修改。NSMutableString是可变的字符串类,允许动态地修改字符串内容。
下面是一个示例代码,演示了它们的一些常见方法和功能:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 创建一个不可变字符串
        NSString *immutableString = @"Hello, ";
        NSLog(@"Immutable String: %@", immutableString);

        // 连接两个字符串
        NSString *name = @"John";
        immutableString = [immutableString stringByAppendingString:name];
        NSLog(@"Concatenated Immutable String: %@", immutableString);

        // 获取字符串长度
        NSUInteger length = [immutableString length];
        NSLog(@"Length of Immutable String: %lu", (unsigned long)length);

        // 检查字符串是否包含指定前缀或后缀
        if ([immutableString hasPrefix:@"Hello"]) {
            NSLog(@"Immutable String starts with 'Hello'");
        }
        if ([immutableString hasSuffix:@"John"]) {
            NSLog(@"Immutable String ends with 'John'");
        }

        // 转换字符串为大写或小写
        NSString *uppercaseString = [immutableString uppercaseString];
        NSString *lowercaseString = [immutableString lowercaseString];
        NSLog(@"Uppercase Immutable String: %@", uppercaseString);
        NSLog(@"Lowercase Immutable String: %@", lowercaseString);

        // 创建一个可变字符串
        NSMutableString *mutableString = [NSMutableString stringWithString:immutableString];
        NSLog(@"Mutable String: %@", mutableString);

        // 在可变字符串末尾追加内容
        [mutableString appendString:@"!"];
        NSLog(@"Appended Mutable String: %@", mutableString);

        // 替换字符串中的子串
        [mutableString replaceCharactersInRange:NSMakeRange(0, 6) withString:@"Hi"];
        NSLog(@"Replaced Mutable String: %@", mutableString);

        // 插入字符串
        [mutableString insertString:@" there, " atIndex:2];
        NSLog(@"Inserted Mutable String: %@", mutableString);

        // 删除字符串中的子串
        [mutableString deleteCharactersInRange:NSMakeRange(0, 4)];
        NSLog(@"Deleted Mutable String: %@", mutableString);
    }
    return 0;
}

上述代码演示了如何创建、操作和处理NSString和NSMutableString的对象。不可变字符串一旦创建后无法更改,而可变字符串则可以进行各种修改操作。这些字符串类提供了丰富的方法,以满足字符串操作的不同需求。通过本示例,你可以了解如何使用这些类来处理字符串,并根据需要灵活地修改它们。

当运行这段代码时,你会看到以下输出:

Immutable String: Hello, 
Concatenated Immutable String: Hello, John
Length of Immutable String: 12
Immutable String starts with 'Hello'
Immutable String ends with 'John'
Uppercase Immutable String: HELLO, JOHN
Lowercase Immutable String: hello, john
Mutable String: Hello, John
Appended Mutable String: Hello, John!
Replaced Mutable String: Hi, John!
Inserted Mutable String: Hi, there, John!
Deleted Mutable String: there, John!

现在,让我解释代码中使用的关键方法和功能:

  1. 不可变字符串 (NSString):

    • 创建不可变字符串:使用@"string content"[NSString stringWithString:@"string content"]
    • 获取字符串长度:使用[string length]
    • 检查前缀和后缀:使用[string hasPrefix:@"prefix"][string hasSuffix:@"suffix"]
    • 转换为大写和小写:使用[string uppercaseString][string lowercaseString]
    • 连接字符串:使用[string1 stringByAppendingString:string2]
  2. 可变字符串 (NSMutableString):

    • 创建可变字符串:使用[NSMutableString stringWithString:immutableString]
    • 追加内容:使用[mutableString appendString:@"string to append"]
    • 替换字符串:使用[mutableString replaceCharactersInRange:range withString:@"replacement"]
    • 插入字符串:使用[mutableString insertString:@"string to insert" atIndex:index]
    • 删除字符串:使用[mutableString deleteCharactersInRange:range]

当处理字符串时,还有一些其他常见方法和功能可以使用。以下是一些示例:

  1. 查找和替换:

    • 查找字符串:使用[string rangeOfString:@"searchString"],它返回一个NSRange结构,指示找到的字符串的位置。
    • 替换所有匹配的子字符串:使用[mutableString replaceOccurrencesOfString:@"oldString" withString:@"newString" options:NSLiteralSearch range:NSMakeRange(0, [mutableString length])]
  2. 截取和拆分:

    • 截取子字符串:使用[string substringWithRange:range],其中rangeNSRange结构。
    • 拆分字符串:使用[string componentsSeparatedByString:@"delimiter"],它返回一个包含分割后的子字符串的数组。
  3. 格式化字符串:

    • 使用格式字符串:使用[NSString stringWithFormat:@"format %@", variable],允许你将变量插入到格式化字符串中。
    • 日期和时间格式化:使用NSDateFormatter来将日期和时间对象格式化为字符串,或将字符串解析为日期和时间对象。
  4. 去除空格和特殊字符:

    • 去除前导和尾随空格和换行符:使用[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
    • 去除特定字符集:使用[string stringByReplacingOccurrencesOfString:@"character" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [string length])]
  5. 字符串比较:

    • 比较字符串:使用[string1 isEqualToString:string2]来检查两个字符串是否相等。
    • 字符串比较:使用[string1 compare:string2]来比较两个字符串的顺序。

以上是一些常见的方法和功能,用于处理字符串操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值