iOS 分类思想(2)
/******************* NSString+NumCount.h文件 ******************************/ #import <Foundation/Foundation.h> @interface NSString (NumCount) // 给NSString类扩充一个类方法计算字符串中数字的个数
+ (int)numberOfString:(NSString *)str; // 给NSString类扩充一个对象方法计算字符串中数字的个数
- (int)numberCount; @end /******************* NSString+NumCount.m文件 ******************************/ #import "NSString+NumCount.h" @implementation NSString (NumCount) // 给NSString类扩充一个类方法计算字符串中数字的个数
+ (int)numberOfString:(NSString *)str
{
return [str numberCount];
} // 给NSString类扩充一个对象方法计算字符串中数字的个数
// 在实际开发中主要是给系统自带的类写分类,在实现的时候注意要么使用类方法要么使用对象方法,以面向对象的思想去实现分类的话推荐对象方法
- (int)numberCount
{
int count = ; for (int i = ; i < self.length; i++) {
// 返回当前索引i处的字符
unichar c = [self characterAtIndex:i];
// 筛选字符在0和9之间的 当然也可以直接用阿斯科码值来判断 因为字符在内存中就是以阿斯科码值来存储的
if (c >= '' && c <= '') { // 可以这样写 c> = 48 && c <= 57
count++;
}
}
return count;
}
@end /*********************** main.m文件 **********************************/
#import <Foundation/Foundation.h>
#import "NSString+NumCount.h"
int main(int argc, const char * argv[])
{
NSString *str = @"45adsfad678sakjdhfkjahskdhf"; int count1 = [str numberCount]; NSLog(@"%d",count1); int count2 = [NSString numberOfString:@"sjdfl9ashdf234234ja"]; NSLog(@"%d",count2); return ;
}
常见的字符对应的阿斯科码表:
iOS 分类思想(2)的更多相关文章
- iOS 分类思想(1)
1.需求:如果对一个类在不更改代码的基础上要为它再扩充额外的方法可以使用继承和分类 2.分类 作用:可以在不修改原来类代码的基础上,给某一个类扩充一些对象方法或者类方法,因此一个类可以有多个分类 实现 ...
- iOS分类、延展和子类的区别
iOS分类.延展和子类的区别 类别.延展.子类的区别 类别 延展 子类 功能 为类添加方法,不用知道类的源码,添加变量(通过运行时,具体参考下面注解) 为类添加私有变量和私有方法,在类的源文件中书 ...
- iOS分类底层实现原理小记
摘要:iOS分类底层是怎么实现的?本文将分如下四个模块进行探究分类的结构体编译时的分类分类的加载总结本文使用的runtime源码版本是objc4-680文中类与分类代码如下//类@interfaceP ...
- IOS编程思想
从今天起想走进IOS架构的大门,一直不屑于学习第三方框架,觉得框架也是一点点代码给垒起来的,只要掌握了代码就可以了,殊不知垒代码的过程才是最重要的,而这个过程又岂是一朝一夕就能达到完美境界的,达到完美 ...
- iOS 分类和继承
iOS 中分类(Categories) 和 继承(Inherit)有相同的功能,但在一些细节上又有差异,简单介绍一下两者的异同. 分类可以在不知道系统类源代码的情况下,为这个类添加新的方法.分类只能用 ...
- iOS分类
ios中的分类其实就是把两个类用两个或多个文件写的,,在平时的开发中我们会发现有的时候我们想要一个类多个什么功能 但是已经定义好的类中没有,,我们又不想更改我们的程序 那么现在的这种情况下我就可以 ...
- HUST 1698 - 电影院 组合数学 + 分类思想
http://acm.hust.edu.cn/problem/show/1698 题目就是要把一个数n分成4段,其中中间两段一定要是奇数. 问有多少种情况. 分类, 奇数 + 奇数 + 奇数 + 奇数 ...
- iOS 编程思想
一 面向过程编程: 处理事情以过程为核心,一步一步的实现 二 面向对象编程: 万物皆对象 三 链式编程思想: 将多个操作通过点链接在一起成为一句代码 特点:方法返回值是Block,block必须有一个 ...
- ios 分类(Category)
今天研究了类别,都是网上找的资料,类别的作用 类别主要有3个作用: (1)将类的实现分散到多个不同文件或多个不同框架中. (2)创建对私有方法的前向引用. (3 ...
随机推荐
- zxing 生成二维码
一.zxing介绍 zxing是google提供生成.解析一维码.二维码的开源库. 二.使用 2.1 maven pom 配置 <dependency> <groupId>co ...
- springMVC get请求及其请求地址写法
今天,需要写一个接口,写完之后,测试的时候发线一直报404错误,不知道为什么报错.应该是get请求地址的问题,get请求有两个参数,改为一个参数的时候是好用的,可能那种方式不适合写两个参数的get请求 ...
- IOS7 隐藏状态栏
- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } // - (BOOL)pref ...
- android常见错误--INSTALL_FAILED_DEXOPT
出现上面的问题,是由于手机的内存不足导致的,需要清理一下手机的内存,然后就可以了
- Hdu 5444 Elven Postman dfs
Elven Postman Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
- http的get与post方式下的getParameter获取中文
客户端提交某个中文参数,比如a=中国 (1)如果以GET方式提交,在地址栏中,可以看到参数进行了URL ENCODE,形如:a=%E4%B8%AD%E5%9B%BD.服务端接收到请求,使用reques ...
- JFinal之学习资源
JFinal官网: http://www.jfinal.com/ JFinal在线API: http://tool.oschina.net/apidocs/apidoc?api=jfinal JFin ...
- Eclipse 开发WEB项目所遇问题 WebContent WebRoot
原文:http://blog.sina.com.cn/s/blog_525960510100jo0j.html 最近在做Web 项目时,新建了一个WEB 项目,如webdemo,eclipse默认的b ...
- JavaScript网站设计实践(四)编写about.html页面,利用JavaScript和DOM,选择性的显示和隐藏DIV元素
一.现在我们在网站设计(三)的基础上,来编写about.html页面. 这个页面要用到的知识点是利用JavaScript和DOM实现选择性地显示和隐藏某些DIV about.html页面在前面我们为了 ...
- python--列表的使用
1.定义列表: names = ['Mo',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Mo' & ...