Objextive-C几道小题目笔记

//掷骰子题,掷骰子100次,输出每个号出现的次数

void one()

{

for (int i=1; i<=100; i++) {

int a = arc4random() % 6 +1;

NSLog(@"%d %d",i,a);

}

}

//输出一个字符串中每个字符出现的次数

void two()

{

NSString *str = @"hello apple";

NSMutableDictionary *dic = [NSMutableDictionary dictionary];

for (int i = 0; i < str.length; i++) {

NSRange range = [str rangeOfComposedCharacterSequenceAtIndex:i];

NSString *s = [str substringWithRange:range];

if (dic[s]) {

int count = [dic[s] intValue]+1;

dic[s] = [NSNumber numberWithInt:count];

}else{

dic[s] = @1;

}

}

NSLog(@"%@",dic);

}

//现在有一个有序的数组,要求用户输入一个整数放到数组中还保证这个数组是有序的。例如原数组为@[@1,@3,@5,@7,@9]; 插入8之后为@[@1,@3,@5,@7,@8,@9]

void three()

{

NSArray *arr = @[@1, @3, @5, @7, @9, @8];

NSArray *result = [arr sortedArrayUsingComparator:^NSComparisonResult(NSNumber *obj1, NSNumber *obj2) {

return [obj1 compare:obj2];

}];

NSLog(@"%@",result);

}

//现有如下定义的字符串: NSString *[email protected]“itheimaAndroid”,能对该字符串进行修改请输出删除Android后的新字符串;

void four()

{

NSString *str1 = @"itheimaAndroid";

NSString *result1 = [str1 stringByReplacingOccurrencesOfString:@"Android" withString:@""];

NSLog(@"%@",result1);

}

//求出1.2.3.4四个数,随意组成一个里面没有相同数字的三位数,总共有多少种组合方式

void five()

{

NSMutableArray *arr = [NSMutableArray array];

for (int i = 1; i <= 4; i++) {

for (int j = 1; j <= 4; j++) {

for (int k = 1; k <= 4; k++) {

if(i != j && i != k && j != k){

[arr addObject:@(i*100 + j*10 +k)];

}

}

}

}

NSLog(@"%@\n%lu", arr, arr.count);

}

//求100以内3的倍数

void six()

{

int i = 1;

NSMutableArray *arr = [NSMutableArray array];

while (i <= 100) {

if (i % 3 == 0) {

[arr addObject:@(i)];

}

i++;

}

NSLog(@"%@\n%lu", arr, arr.count);

}

//深复制,浅复制的问题,随便一个NSArray,用代码创建一个可变和一个不可变数组,他们是深复制还是浅复制

void seven()

{

NSArray *arrary = [NSArray array];

NSArray *a1 = [NSArray arrayWithArray:arrary];

NSArray *a2 = [arrary copy];

NSArray *a3 = arrary;

NSMutableArray *a4 = [NSMutableArray arrayWithArray:arrary];

NSLog(@"\n%p\n%p\n%p\n%p\n%p", arrary, a1, a2, a3, a4);

}

//利用分类给NSString扩展3个方法:<1>字符串反转(比如@"123"调用方法后返回@"321");<2>计算英文字母的个数(比如@"5435abc54abc3AHJ5"调用方法后返回的是9);<3>去除字符串两端空格(比如@" 1235 45 "调用方法后返回@"1235 45")

- (NSString *)stringByReserve

{

NSMutableString *s = [NSMutableString string];

for (NSUInteger i = self.length; i > 0; i--)

{

[s appendString:[self substringWithRange:NSMakeRange(i-1, 1)]];

}

return s;

}

- (NSUInteger)chararcterCountOfString

{

NSUInteger count = 0;

for (NSUInteger i = 0; i < self.length; i ++)

{

unichar c = [self characterAtIndex:i];

if ((c<=‘z‘&&c>=‘a‘)||(c<=‘Z‘&&c>=‘A‘)) {

count ++;

}

}

return count;

}

- (NSString *)stringByRemovingBlank

{

return [self stringByReplacingOccurrencesOfString:@" " withString:@""];

}

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

时间: 2024-08-28 03:19:46

Objextive-C几道小题目笔记的相关文章

关于SQL的几道小题详解

关于SQL的几道小题详解 当我们拿到题目的时候,并不是急于作答,那样会得不偿失的,而是分析思路,采用什么方法,达到什么目的,还要思考有没有简单的方法或者通用的方法等等,这样才会达到以一当十的效果,这样的惯性思维其实早在我们度高中的时候就被领教了,所谓“万变不离其宗”吧.以下各题来自日常所见,或QQ群,或面试题,或博客园. 题目一:如下表所示,现需要按照收款员统计收款和退款合计金额. 实现结果需如下显示: 分析:想要的结果(记为表B)和源数据(记为表A)相比,有共同的列(收款员),不同的是表A的金

《程序员修炼之道》读书笔记

<程序员修炼之道>读书笔记 提供多种选择,不要找接口 出了问题后,要提出各种解决方案的选择,而不是找借口:不要说事情做不到,要说明接下来做什么来挽回局面: 不要容忍破窗户 我们看到过整洁.运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化: 不要留着破窗户不修:发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来:或许你可以先把代码注释起来,或是显示"未实现"的消息:采取某种行动防止进一步的损坏,并说明情形在你的控制之下: 投资知识资产 我们喜欢把程

程序实现自动生成30道四则运算题目

课堂上老师要求我们做这样一个题目,题目要求是自动生成30道四则运算题目,要求除整数加减乘除外,还有真分数加减乘除.刚开始听到这个题目一头雾水,有点复杂,但仔细拆分这个题目不难发现,这个题目可以简化成三个小问题,分别是随机数自动生成两个数,自动生成符号,还有输出结果.对于随机数自动生成两个数可以简化为随机数生成整数,随机数生成真分数,生成真分数可以简化到随机数生成分子和分母.对于自动生成符号,也可以简化为随机数生成1,2,3,4,分别代表+,—,*,/,输出结果可以用一个for循化,实现输出30道

《程序员修炼之道》读书笔记②

概述 花了几天时间看完了程序员修炼之道,有很多感悟,记录于此,供自己开发时参考,相信对其他人也有用. 值得一提的是,这本书写的非常好,很多大牛在走了很多弯路之后再读这本书都很感慨没有早些读. <程序员修炼之道>读书笔记① 弯曲,或折断 解耦与得墨忒耳法则 1.函数的得墨忒耳法则规定,某个对象的任何方法都应该只调用属于以下情形的方法:它自身:传入该方法的任何参数:它创建的任何对象:任何直接持有的组件对象. 2.委托服从得墨忒耳法则,从而减少了耦合. 元程序设计 1.元数据是关于数据的数据:要用元

课堂练习之每天出30道四则运算题目

1 /* 2 需求:每天出30道四则运算题目给小学生做 3 */ 4 5 class Rand 6 { 7 public static void sop(Object obj) 8 { 9 System.out.println(obj); 10 } 11 public static void main(String[] args) 12 { 13 sop("小学生二年级课后作业,每天30道四则运算练习:"); 14 15 int count = 0; 16 17 for (int i=

小算法笔记

素数: 除 1 外只能被 1 和自身整除的数. 方法一: #include <stdio.h> #define N 1000 int num = 0; int prime(int n) { int i; if(n % 2 == 0) return (n == 2); if(n % 3 == 0) return (n == 3); if(n % 5 == 0) return (n == 5); for(i = 7; i*i <= n; ++i) if(n % i == 0) return

分享两道笔试题目

前几天,给成都的某家公司投了个简历,给发了两道笔试题目,与大家分享一下.附上自己的解题过程,写得不好的地方,还请博友多多指教. 一 .  设计程序输出销售及收费清单 一个电商平台对在其平台之上销售的除了书籍.食品以及药物以外的商品收取 10% 的费用.而对于进口的商品则额外收取 5% 的附加费用.对于平台抽取的费用计算时,舍入的规则是:对于 n% 抽取率,价格为 p的商品, np/100 的值就近舍入到 0.05(如: 7.125 -> 7.15, 6.66 -> 6.70 ). 卖家卖出一些

《软件测试自动化之道》读书笔记 之 SQL 存储过程测试

<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序   创建测试用例以及测试结果存储  执行T-SQL脚本  使用BCP工具导入测试用例数据  创建T-SQL 测试套件  当待测存储过程返回行集的时候,如何判断测试结果是否通过  当待测存储过程返回out参数时,如何判断测试结果是否通过  当待测存储过程没有返回值时,如何判断测试结果是否通过 许多基于Windows的系统都使用了SQL Server作为后台组件.待测程序经常通过存储过程来访问数据库.

《编写高质量代码》web前端开发修炼之道-读书笔记

第一章  从网站重构说起 <编写高质量代码>web前端开发修炼之道-读书笔记