NSString字符串处理简单总结

  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、付费专栏及课程。

余额充值