-
NSString, trimiOS/Mac 2011. 5. 26. 13:54
우째 이런 기본적인 것이 없을까나..
NSString에 카테고리로 trim 관련 메소드를 추가해봤습니다.
NSString_Trim.h
@interface NSString(Trim)
- (NSString *)ltrim;
- (NSString *)rtrim;
- (NSString *)trim;
@end
NSString_Trim.m
@implementation NSString(Trim)
- (NSString *)ltrim
{
NSCharacterSet *cs = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSUInteger len = [self length];
int i;
for (i=0; i < len; i++)
{
unichar c = [self characterAtIndex:i];
if ( [cs characterIsMember:c] == NO ) break;
}
NSString *trimmed = [self substringFromIndex:i];
return trimmed;
}
- (NSString *)rtrim
{
NSCharacterSet *cs = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSUInteger len = [self length];
int i;
for (i=(len-1); i >= 0; i--)
{
unichar c = [self characterAtIndex:i];
if ( [cs characterIsMember:c] == NO ) break;
}
NSString *trimmed = [self substringToIndex:i+1];
return trimmed;
}
- (NSString *)trim
{
NSCharacterSet *cs = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSUInteger len = [self length];
int start, end;
unichar c;
for (start=0; start < len; start++)
{
c = [self characterAtIndex:start];
if ( [cs characterIsMember:c] == NO ) break;
}
for (end=(len-1); end >= start; end--)
{
c = [self characterAtIndex:end];
if ( [cs characterIsMember:c] == NO ) break;
}
NSRange r = NSMakeRange(start, end-start+1);
NSString *trimmed = [self substringWithRange:r];
return trimmed;
}
@end반응형