在文本框中输入字符时,经常需要过滤掉首尾的空格字符。这是一个比较常用的功能,特总结分享一个处理的函数,返回删除首尾空格后的字符串,供查询和备用。
//Remove space char(s) at the beginning and the end of string
+ (NSString *)trimHeaderTrailSpace:(NSString *)target
{
if(!target) {
return @"";
}
NSMutableString *result = [[NSMutableString alloc] initWithString:target];
unichar charTemp;
//Step 1: Remove space chars at the end of string
for(NSInteger i = ([result length]-1); i >= 0; i--){
charTemp = [result characterAtIndex:i];
if([self isSpaceChar:charTemp])
[result replaceCharactersInRange:NSMakeRange(i, 1) withString:@""];
else
break;
}
// Step 2: Remove space chars at the beginning of string
// Step 2.1: We need to count the number of space chars at the beginning first
int sumOfSpace = 0;
for(int j = 0; j < [result length]; j++){
charTemp = [result characterAtIndex:j];
if([self isSpaceChar:charTemp])
sumOfSpace++;
else
break;
}
// Step 2.2: Remove space chars at the begging of string
if (0 != sumOfSpace) {
[result replaceCharactersInRange:NSMakeRange(0, sumOfSpace) withString:@""];
}
NSString *resultString = [NSString stringWithString:result];
return resultString;
}
+ (BOOL) isSpaceChar:(uinchar)char {
if (char == ' ' || char == '\r' || char =='\n') {
return YES;
}
return NO;
}
算法的复杂度为O(n),一次扫描即可完成替换。