NSString常用的扩展方法



/* 
 Erica Sadun, [url]http://ericasadun.com[/url] 
 iPhone Developer's Cookbook, 3.0 Edition 
 BSD License, Use at your own risk 
 */  
    
#import   
    
    
@interface NSString (UtilityExtensions)  
- (NSString *) stringByAppendingRandomStringOfRandomLength;  
- (int) occurrencesOfString: (NSString *) aString;  
- (NSDate *) date;  
+ (NSString *) commasForNumber: (long long) num;  
@property (readonly) NSString *trimmedString;  
@property (readonly) NSDate *date;  
@end  
    
@interface NSString (UTF8String)  
@property (readonly) char *UTF8String; // a favorite!  
@end  
    
/* 
 Erica Sadun, [url]http://ericasadun.com[/url] 
 iPhone Developer's Cookbook, 3.0 Edition 
 BSD License, Use at your own risk 
 */  
    
#import "NSString-Utilities.h"  
    
@implementation  NSString (UtilityExtensions)  
- (NSString *) trimmedString  
{  
    return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];  
}  
    
- (int) occurrencesOfString: (NSString *) aString  
{  
    return [self componentsSeparatedByString:aString].count -1;  
}  
    
// run srandom() somewhere in your app // [url]http://tinypaste.com/5f1c9[/url]  
// Requested by BleuLlama  
- (NSString *) stringByAppendingRandomStringOfRandomLength  
{  
    int len = random() % 32;  
    NSMutableArray *chars = [NSMutableArray array];  
    NSMutableString *s = [NSMutableString stringWithString:self];  
    
    NSMutableCharacterSet *cs = [[NSMutableCharacterSet alloc] init];  
    [cs formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];  
    [cs formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];  
    // [cs formUnionWithCharacterSet:[NSCharacterSet symbolCharacterSet]];  
    // [cs formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];  
    
    // init char array from charset  
    for (int c = 0; c < 128; c++) // 7 bit only  
        if ([cs characterIsMember:(unichar)c])  
            [chars addObject:[NSString stringWithFormat:@"%c", c]];  
    
    for (int i = 0; i < len; i++) [s appendString:[chars objectAtIndex:(random() % chars.count)]];  
    
    [cs release];  
    return s;  
}  
    
//将字符串转换为日期
- (NSDate *) date  
{  
    // Return a date from a string  
    NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];  
    formatter.dateFormat = @"MM-dd-yyyy";  
    NSDate *date = [formatter dateFromString:self];  
    return date;  
}  
    
// return a comma delimited string  
+ (NSString *) commasForNumber: (long long) num  
{  
    if (num < 1000) return [NSString stringWithFormat:@"%d", num];  
    return    [[self commasForNumber:num/1000] stringByAppendingFormat:@",%03d", (num % 1000)];  
}  
@end  


0