在iOS的實際開發中,常會出現需要去除空格的情況,總結有三種情況:
- 去除字符串首尾連續字符(如空格);
- 去除字符串首部連續字符(如空格);
- 去除字符串尾部連續字符(如空格);
去除字符串首尾連續字符(如空格)
NSString *a = @" a sdf "; [a stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
去除字符串首部連續字符(如空格);
NSString *a = @" a sdf "; NSString *leftResult = [a stringByTrimmingLeftCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
#import "NSString+util.h" @implementation NSString (util) - (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet { NSUInteger location = 0; NSUInteger length = [self length]; unichar charBuffer[length]; [self getCharacters:charBuffer range:NSMakeRange(0, length)]; for (NSInteger i = 0; i < length; i++) { if (![characterSet characterIsMember:charBuffer[i]]) { location = i; break; } } return [self substringWithRange:NSMakeRange(location, length - location)]; }
去除字符串尾部連續字符(如空格);
NSString *a = @" a sdf "; NSString *rightResult = [a stringByTrimmingRightCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
- (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet { NSUInteger length = [self length]; unichar charBuffer[length]; [self getCharacters:charBuffer range:NSMakeRange(0, length)]; NSUInteger subLength = 0; for (NSInteger i = length; i > 0; i--) { if (![characterSet characterIsMember:charBuffer[i - 1]]) { subLength = i; break; } } return [self substringWithRange:NSMakeRange(0, subLength)]; }