黑马程序员技术交流社区
标题:
分享一道刚才做到的题目:删除字符串首尾的空格
[打印本页]
作者:
wxy19891017
时间:
2015-4-23 21:53
标题:
分享一道刚才做到的题目:删除字符串首尾的空格
/*
去除字符串两端空格(比如@” 1235 45 ”调用方法后返回@”1235 45”)
*/
#import "NSString+DeleteSpace.h"
@implementation NSString (DeleteSpace)
- (NSString *)deleteSpace
{
//将调用方法的字符串对象转换成可变字符串
NSMutableString *mtstr = [NSMutableString stringWithFormat:@"%@",self];
int i = 0;
//判断首元素,首元素如果是空格,将一直执行循环体,直到遇到break退出循环
while ([mtstr characterAtIndex:0] == ' ')
{
//删除首元素的空格
[mtstr deleteCharactersInRange:NSMakeRange(0, 1)];
//指向下一元素
i++;
//如果下一元素依然是空格,便会执行循环体了
if ([mtstr characterAtIndex:i] == ' ')
{
[mtstr deleteCharactersInRange:NSMakeRange(i, 1)];
}
else
{
break;//遇到不是空格,退出循环
}
}
//末尾元素的位置
i = mtstr.length -1;
while ([mtstr characterAtIndex:(mtstr.length - 1)] == ' ')
{
//从末尾开始删除空格元素
[mtstr deleteCharactersInRange:NSMakeRange(mtstr.length - 1, 1)];
i--;
if ([mtstr characterAtIndex:i] == ' ')
{
[mtstr deleteCharactersInRange:NSMakeRange(i, 1)];
}
else
{
break;
}
}
return mtstr;
}
@end
复制代码
虽然功能能够实现,但是我感觉代码还需要很大的优化,老感觉重复功能的代码不少,小白,欢迎大家指点,谢谢!
作者:
ruihai
时间:
2015-5-4 10:09
楼主这是我写的
#import "NSString+DeleteSpace.h"
@implementation NSString (DeleteSpace)
+(NSString *)deleteSpaceAtStartAndEnd:(NSString *)input {
// 返回字符串的范围
NSUInteger startLocation = 0;
NSUInteger endLocation = input.length - 1;
// 第一个非空字符作为头
while ([input characterAtIndex:startLocation] == ' ') {
startLocation++;
}
// 第一个非空字符作为尾
while ([input characterAtIndex:endLocation] == ' ') {
endLocation--;
}
// 得出substring的范围
return [input substringWithRange:NSMakeRange(startLocation, endLocation - startLocation + 1)];
}
@end
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2