Objectvie-C之 NSString 处理技巧<二>

一、用字符将NSArray中的元素拼接起来

NSArray *array = [NSArray arrayWithObjects:@"hello",@"world",nil];

//如要用,:等字符串拼接,只需将下面的@" "空格换成@","或@":"即可
NSString *string = [array componentsJoinedByString:@" "];

NSLog(@"string = %@",string);
打印结果:hello world

二、截取子串:这里以获取时间为例,利用NSDate获取到当前时间时,有时候只需要日期或者只需要时间

①从字符串开头截取到指定的位置,如

//获取到当前日期时间    
NSDate *date = [NSDate date];
        
//定义日期格式,此处不重点讨论NSDate,故不详细说明,在后面会详细讨论       
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
        
//设置日期格式        
[dateformatter setDateFormat:@"YYYY-MM-dd HH:mm"];
        
//将日期转换成NSString类型      
NSString *string = [dateformatter stringFromDate:date];
NSLog(@"\ncurrent = %@",string);
               
//截取日期substringToIndex 
NSString *currentDate = [string substringToIndex:10];
                
NSLog(@"\ncurrentDate = %@",currentDate);
打印结果:

current = 2013-06-27 11:12

currentDate = 2013-06-27

②抽取中间子串-substringWithRange

//截取月日
NSString *currentMonthAndDate = [string substringWithRange:[NSMakeRange(5, 5)]];
        
NSLog(@"currentMonthAndDate = %@",currentMonthAndDate);
打印结果:

currentMonthAndDate = 06-27

③从某一位置开始截取- substringFromIndex

//截取时间substringFromIndex
NSString *currentTime = [string substringFromIndex:11];
        
NSLog(@"\ncurrentTime = %@",currentTime);

打印结果:

currentTime = 11:25

三、比较字符串
NSString *first = @"string";
NSString *second = @"String";
①判断两个字符串是否相同-isEqualToString方法
BOOL isEqual = [first isEqualToString:second];

NSLog(@"first is Equal to second:%@",isEqual);
打印结果:

first is Equal to second:0

②compare方法比较字符串

三个值

NSOrderedSame//是否相同
NSOrderedAscending//升序,按字母顺序比较,大于为真
NSOrderedDescending//降序,按字母顺序比较,小于为真
BOOL result = [first compare:sencond] == NSOrderedSame;    
NSLog(@"result:%d",result);
打印结果:

result:0 

BOOL result = [first compare:second] == NSOrderedAscending;    
NSLog(@"result:%d",result);
打印结果:

result:0

BOOL result = [first compare:second] == NSOrderedDecending; NSLog(@"result:%d",result);

打印结果:

result:1

③不考虑大小写比较字符串
BOOL result = [first compare:second
                     options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame;
NSLog(@"result:%d",result);
打印结果:

result:1

四、改变字符串大小写
NSString *aString = @"A String"; 
NSString *string = @"String"; 
//大写
NSLog(@"aString:%@",[aString uppercaseString]);
//小写
NSLog(@"string:%@",[string lowercaseString]);
//首字母大小写
NSLog(@"string:%@",[string capitalizedString]);
打印结果:

aString:A STRING

string:string

string:String

五、在字符串中搜索子串
NSString *string1 = @"This is a string";
NSString *string2 = @"string";
NSRange range = [string1 rangeOfString:string2];
NSUInteger location = range.location;
NSUInteger leight = range.length;
NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%li,Leight:%li",location,leight]];
NSLog(@"astring:%@",astring);
[astring release];

打印结果:

astring:Location:10,Leight:6

你可能感兴趣的:(NSString用法技巧,NSString抽取子串,NSString比较字符串)