//  main.m
// Category练习 #import <Foundation/Foundation.h>
#import "NSString+NJ.h" //看不到NSString的.h文件。 /*
int countWithStr(NSString *str)
{
int count = 0;
for (int i = 0; i < str.length; ++i) {
unichar c = [str characterAtIndex:i];
if (c >= '0' && c <= '9') {
count++;
}
}
return count;
}
*/ int main(int argc, const char * argv[]) {
/*
已知一个字符串, 要求找出字符串中所有的阿拉伯数字
@"a123jj46kfd5jlwf7ld"; 1.计数器思想, 定义一个变量保存结果
2.遍历字符串, 取出字符串中所有的字符
*/ NSString *str = @"a1jj46kf1d5jlwf7l9d8";
/*
// unichar c = [str characterAtIndex:1];
// NSLog(@"%c", c);
int count = 0;
for (int i = 0; i < str.length; ++i) {
unichar c = [str characterAtIndex:i];
// NSLog(@"%c", c);
if (c >= '0' && c <= '9') {
count++;
}
}
*/ int count2 = countWithStr(str);
int count1 = [NSString countWithStr:str];
int count = [str count];
NSLog(@"count = %i", count);
return ;
}
//  NSString+NJ.h

#import <Foundation/Foundation.h>

@interface NSString (NJ)

+ (int)countWithStr:(NSString *)str;

- (int)count;
@end
//  NSString+NJ.m

#import "NSString+NJ.h"

@implementation NSString (NJ)

-(int)countWithStr:(NSString *)str{
int count=;
for (int i=; i< str.length; i++) {
unichar c=[str characterAtIndex:i];
if (c>=''&& c<='') {
count++;
}
} } -(int)count{
int number=;
for (int i= ; i< self.length; ++i) {
unichar c=[self characterAtIndex:i];
if(c>=''&& c<='');
number ++; } }
@end
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject

- (void)test;
@end
//  Person.m

#import "Person.h"
#import "NSString+NJ.h" @implementation Person -(void)test{
NSString *str=@"fds64jkl43fjdslkf";
int count =[NSString countWithStr:str];
NSLog(@" count= %i",count);
} @end

oc60--Category 分类 练习的更多相关文章

  1. category分类

    /* 使用继承关系来扩充一个类,有一个弊病,高耦合性 category(分类,类别) 能够帮我们扩充一个类的功能 */ - (void)superJump { //    [self eat]; [s ...

  2. Objective-C中的Category(分类)

    Objective-C中的Category(分类) 1 Category概念:动态的为已经存在的类加入新的行为(方法) 2 Category(分类)创建的方法 (1)通过Xcode生成分类 (2)能够 ...

  3. 使用django开发博客过程记录4——Category分类视图

    在写点击博客的所属分类,显示所有该分类的文章时真是让我想了好一会,为什么呢?因为我使用的是cbv模式开发的而不是简单的视图处理逻辑的,所以,有些操作会被包装好了,你并不知道它的细节,那么我们今天要实现 ...

  4. Objective-C( Category 分类,非正式协议,分类延展)

    分类: 主要是给原来类增加一些方法;不可以增加成员变量 Person (Person+eat) 非正式协议: 非正式协议就是类别,即凡是NSObject或其子类Foundation框架中的类增加的类别 ...

  5. iOS - OC Category 分类

    1.Category 1)分类/类别(category): 允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).用以扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之 ...

  6. [Objective-c 基础 - 2.8] category分类/类别/类目

    A.给某个类扩充方法(不改变原来的类) 例如,给类Person加上名为Simon的category,加上一个-study方法 使用()注明 Person+Simon.h @interface Pers ...

  7. Category 分类

    1.Category 1)分类/类别(category): 允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).用以扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之 ...

  8. [OC笔记] Category分类之见解

    用过别的语言做过开发的同学都知道,如果你想扩充一个类,就应该去继承这个类.但是OC里面有更好的方法,那就是分类. 那什么是分类呢?就是在不改变原先类,我们可以在其中添加咱们自定义的方法,这样和同事合作 ...

  9. OC category(分类)

    // ()代表着是一个分类 // ()中的Test代表着分类的名称 @interface Student (Test) // 分类只能扩展方法,不能增加成员变量 - (void)test2; @end

  10. Xcode7中,如何新建category分类

    易忘,所以留存: 1, 2, 3, 结果如下: 补充: http://tech.meituan.com/DiveIntoCategory.html

随机推荐

  1. 实现div毛玻璃背景

    毛玻璃效果 ios里毛玻璃效果的使用非常多,本文介绍一个实现div毛玻璃背景的方法 CSS3 Filter CSS3的Filter主要用在图像的特效处理上,默认值为none,还有以下备选项:   1. ...

  2. jQuery五屏轮播手风琴切换代码

    jQuery五屏轮播手风琴切换代码 在线演示本地下载

  3. Java引用jar的优化

    一般java的类文件开头都是各种引用: 如 上图的引用可以写成

  4. html中保证中文能够正常显示

    <meta http-equiv="Content-Type" content="text/html"; charset=utf-8"/> ...

  5. AIDL跨进程通信报Intent must be explicit

    在Android5.0机子上采用隐式启动来调试AIDL时,会出现Intent must be explicit的错误,原因是5.0的机子不允许使用隐式启动方式,解决的方法是:在启动intent时添加i ...

  6. unity之Rigidbody属性

    Rigidbody属性 Mass表示物体的质量,数值类型为float,默认值为1.大部分物体的质量属性接近于0.1才符合日常生活感官感受,超过10 ,则失去了仿真效果. Drag表示平移阻力,其数值类 ...

  7. jQuery——尺寸位置

    获取宽:$(".box").width() 设置宽:$(".box").width(200) 获取高:$(".box").height() ...

  8. [Windows Server 2008] 查看ASP.net详细错误信息

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:查看IIS ...

  9. Gpupdate命令详解

    刷新本地和基于 Active Directory 的组策略设置,包括安全设置.该命令可以取代 secedit 命令中已经过时的 /refreshpolicy 选项. MS-DOS命令语法 gpupda ...

  10. WebService附加到IIS调试,未命中断点

    写好了一个WebService,部署到IIS上,用浏览器访问发现并不能命中断点. 经过多次的查找发现是由于附加的代码类型选择错误. 下图由于错误的选择了托管代码,导致调试时不命中断点,勾选自动解决.