/******************* 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)的更多相关文章

  1. iOS 分类思想(1)

    1.需求:如果对一个类在不更改代码的基础上要为它再扩充额外的方法可以使用继承和分类 2.分类 作用:可以在不修改原来类代码的基础上,给某一个类扩充一些对象方法或者类方法,因此一个类可以有多个分类 实现 ...

  2. iOS分类、延展和子类的区别

    iOS分类.延展和子类的区别 类别.延展.子类的区别   类别 延展 子类 功能 为类添加方法,不用知道类的源码,添加变量(通过运行时,具体参考下面注解) 为类添加私有变量和私有方法,在类的源文件中书 ...

  3. iOS分类底层实现原理小记

    摘要:iOS分类底层是怎么实现的?本文将分如下四个模块进行探究分类的结构体编译时的分类分类的加载总结本文使用的runtime源码版本是objc4-680文中类与分类代码如下//类@interfaceP ...

  4. IOS编程思想

    从今天起想走进IOS架构的大门,一直不屑于学习第三方框架,觉得框架也是一点点代码给垒起来的,只要掌握了代码就可以了,殊不知垒代码的过程才是最重要的,而这个过程又岂是一朝一夕就能达到完美境界的,达到完美 ...

  5. iOS 分类和继承

    iOS 中分类(Categories) 和 继承(Inherit)有相同的功能,但在一些细节上又有差异,简单介绍一下两者的异同. 分类可以在不知道系统类源代码的情况下,为这个类添加新的方法.分类只能用 ...

  6. iOS分类

    ios中的分类其实就是把两个类用两个或多个文件写的,,在平时的开发中我们会发现有的时候我们想要一个类多个什么功能  但是已经定义好的类中没有,,我们又不想更改我们的程序  那么现在的这种情况下我就可以 ...

  7. HUST 1698 - 电影院 组合数学 + 分类思想

    http://acm.hust.edu.cn/problem/show/1698 题目就是要把一个数n分成4段,其中中间两段一定要是奇数. 问有多少种情况. 分类, 奇数 + 奇数 + 奇数 + 奇数 ...

  8. iOS 编程思想

    一 面向过程编程: 处理事情以过程为核心,一步一步的实现 二 面向对象编程: 万物皆对象 三 链式编程思想: 将多个操作通过点链接在一起成为一句代码 特点:方法返回值是Block,block必须有一个 ...

  9. ios 分类(Category)

      今天研究了类别,都是网上找的资料,类别的作用 类别主要有3个作用:       (1)将类的实现分散到多个不同文件或多个不同框架中.       (2)创建对私有方法的前向引用.       (3 ...

随机推荐

  1. Action开发、通配符、路径问题和struts中常量用法

    1.action开发 开发的几种方式 (1).继承自ActionSupport,(如果用struts的数据效验功,能必须必须使用此功能,因为ActionSupport实现了数据效验的接口) publi ...

  2. Ps切图学习

    1.切图的原文件格式为psd,用ps工具打开 2.鼠标点击需要切的图片,会自动选中图层: 3.选择需要切图的图层,右键复制图层 宽高必须为2的倍数 文件-存储为web和设备所用格式 预设选择为png- ...

  3. Android获唯一标识

    Android开发中有时候因业务需要客户端要产生一个唯一的标识符使服务器能识别某台Android设备,目前一般使用三种标识符分别为 DeviceId . AndroidId . MAC地址 . 获取D ...

  4. IOS 在Ipad 横屏 上使用UIImagePickerController

    转载前请注明来源:http://www.cnblogs.com/niit-soft-518/p/4381328.html 最近在写一个ipad的项目,该项目必须是横屏.进入正题,有一项功能是要调用系统 ...

  5. C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部【转载】

    这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开发的一样(实际上……跟自己开发的还是有一点点区别的,就是内嵌程序和宿主程序的窗口激活状态问题) ...

  6. STL——迭代器的概念

    迭代器是一种抽象的设计概念,现实程序语言中并没有直接对应于这个概念的实物. 1 迭代器设计思维——STL关键所在 不论是泛型思维或STL的实际运用,迭代器都扮演这重要的角色.STL的中心思想在于:将数 ...

  7. Linux 服务器相关的一下链接

    Apache 虚拟主机 VirtualHost 配置 以下是各操作系统的配置方法. Redhat Enterprise Linux Ubuntu Linux Windows Mac OS http:/ ...

  8. C#_MVC_分页update

    private static string getLinkHtml(UrlHelper urlHelper, bool useAjax, string ajaxSuccessFunction, str ...

  9. 1、C语言中的函数指针

    一 通常的函数调用 void MyFun(int x); //此处的申明也可写成:void MyFun( int ); int main(int argc, char* argv[]) { MyFun ...

  10. Android_ViewPager

    view1源代码及xml资源文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...