利用分类实现功能
2016-07-28 15:24
260 查看
main.m
//
// main.m
// 利用分类实现功能
//
// Created by yaomars on 16/4/27.
// Copyright © 2016年 yaomars. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSString+Extensions.h" //这个分类就是非正式协议!!!
//利用分类实现以下两个功能:(1)字符串的反转。(2)计算字符串中英文字母的个数
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 分析: 根据这两个功能,确定为NSString这个类添加分类
// 1.字符串的反转功能
NSString *str = @"abc12de3f";
str = [str rollbackString];
NSLog(@"字符串的反转后为: %@",str);
// 2.计算字符串中英文字母的个数
NSUInteger count = [str countNumberOfCharacter];
NSLog(@"字符串中英文字母的个数: %lu",count);
}
return 0;
}
NSString+Extensions.h
NSString+Extensions.m
//
// main.m
// 利用分类实现功能
//
// Created by yaomars on 16/4/27.
// Copyright © 2016年 yaomars. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSString+Extensions.h" //这个分类就是非正式协议!!!
//利用分类实现以下两个功能:(1)字符串的反转。(2)计算字符串中英文字母的个数
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 分析: 根据这两个功能,确定为NSString这个类添加分类
// 1.字符串的反转功能
NSString *str = @"abc12de3f";
str = [str rollbackString];
NSLog(@"字符串的反转后为: %@",str);
// 2.计算字符串中英文字母的个数
NSUInteger count = [str countNumberOfCharacter];
NSLog(@"字符串中英文字母的个数: %lu",count);
}
return 0;
}
NSString+Extensions.h
// // NSString+Extensions.h // HM笔试总结 // // Created by yaomars on 16/4/27. // Copyright © 2016年 yaomars. All rights reserved. // #import <Foundation/Foundation.h> @interface NSString (Extensions) // 1.字符串的反转功能 -(NSString *)rollbackString; // 2.计算字符串中英文字母的个数 -(NSUInteger)countNumberOfCharacter; @end
NSString+Extensions.m
// // NSString+Extensions.m // HM笔试总结 // // Created by yaomars on 16/4/27. // Copyright © 2016年 yaomars. All rights reserved. // #import "NSString+Extensions.h" @implementation NSString (Extensions) -(NSString *)rollbackString{ NSMutableString *strM = [NSMutableString string]; for (int i=(int)self.length-1; i >= 0; i--) { NSString *temp = [self substringWithRange:NSMakeRange(i, 1)]; [strM appendString:temp]; } return strM; //返回的是一个可变的字符串 会进行自动转换?? } -(NSUInteger)countNumberOfCharacter{ NSUInteger count = 0; for (int i=0; i<self.length; i++) { unichar ch = [self characterAtIndex:i]; if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) { count ++; } } return count; } @end
相关文章推荐
- js需要把时间戳转为为普通格式
- Extern templates
- Android_实现省市区(县)三级联动效果
- 更新后台程序WEB_INFO目录
- poj 2387 Dijkstra入门(动态图解)
- eclipse新建workspace如何保留之前的相关设置
- Java enum的用法详解
- NSString , NSArray和NSDictionary的遍历方式
- Java实现链式队列
- 有序数组,插入一个数后还保证有序
- Android开发架构规范
- 232. Implement Queue using Stacks
- HDU 1231 最大连续子序列
- 三种JAVA常用实现字符串反转(Reverse)的方法
- 深复制和浅复制(二)
- javascript-由初速度和仰角求射程
- 大型网站技术架构(一):大型网站架构演化
- 能够提高开发效率的Eclipse实用操作
- 深复制和浅复制
- 寻找整数数组中的最小值