NSString字符串处理简单总结

本文详细介绍了Objective-C中连接、分割字符串、转成数值、去除换行、取得子字符串、获取当前日期字符串、Trim字符串、按行处理字符串、将字符串放入剪贴板等常用字符串操作,并提供了具体代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 连接字符串
    Objective-C
    1
    2
    3
    NSArray *strings = ... ;
    string = [strings componentsJoinedByString: @" :-) "];
    // 结果:string1:-)string2:-)......
  2. 分割字符串
    Objective-C
    1
    2
    NSString *string = @"string1:string2:string3:string4:string5";
    NSArray *chunks = [string componentsSeparatedByString: @":"];

  3. 转成数值
    Objective-C
    1
    2
    3
    4
    NSString *string = ...;
    int intValue = [string intValue]; // int数值
    float floatValue = [string floatValue]; // float数值
    double doubleValue = [string doubleValue]; // double数值
  4. 从字符串中去除换行

    可以使用上面提到的分割字符串,然后再将它们连接起来。但是采用下面的方式更好一些。

    Objective-C
    1
    2
    3
    4
    5
    6
    7
    8
    NSMutableString *mstring = [NSMutableString stringWithString:string];
    NSRange wholeShebang = NSMakeRange(0, [mstring length]);
    [mstring replaceOccurrencesOfString: @"
    "
    withString: @""
    options: 0
    range: wholeShebang];

    这个方法也可以用来替换字符串。这种方法比分割/连接字符串的方法稍微快一点儿,但不是很明显。处理长度1500000的字符串,当中有36909个换行,分割/连接的方法要0.124秒,这个方法要0.071秒。

  5. 取得子字符串
    Objective-C
    1
    NSRange range = [[string name] rangeOfString: otherString options: NSCaseInsensitiveSearch];
  6. 取得当前日期的字符串

    通常将Date转化成NSString的方法是使用NSDateFormatter,但有时候可以使用特殊方法更简单的进行转化。比如想得到:“December 4, 2007”

    Objective-C
    1
    [[NSDate date] descriptionWithCalendarFormat: @"%B %e, %Y" timeZone: nil locale: nil]
  7. Trim一个NSString
    Objective-C
    1
    2
    3
    4
    5
    NSString *ook = @"\n \t\t hello there \t\n \n\n";
    NSString *trimmed =
    [ook stringByTrimmingCharactersInSet:
    [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    // 结果是hello there
  8. 按行处理一个字符串

    如果一个本文文体,每一行是一条数据,想循环处理每一条数据要怎么做简单呢。看下面的例子:

    Objective-C
    1
    2
    3
    4
    5
    6
    7
    NSMutableArray *altitudes = [NSMutableArray array];
    NSString *altitudeString = [self altitudeStringFromGoogle: coords];
    [altitudeString enumerateLinesUsingBlock: ^(NSString *line, BOOL *stop) {
    float value = [line floatValue];
    [altitudes addObject: [NSNumber numberWithFloat: value]];
    }];

  9. 将字符串放在剪贴板上的方法

    Objective-C
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @implementation NSString (PasteboardGoodies)
    - (void) sendToPasteboard
    {
    [[NSPasteboard generalPasteboard]
    declareTypes: [NSArray arrayWithObject: NSStringPboardType]
    owner:nil];
    [[NSPasteboard generalPasteboard]
    setString: self
    forType: NSStringPboardType];
    } // sendToPasteboard
    @end // PasteboardGoodies




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值