一 数字

1.使用Foundation.h可以直接导入所有的头文件。
在XCode中,想查看某个方法帮助,可以将光标放在方法上,按住option键同时单击即可。
 
2.数字对象
 
objective-c有几种基本数据类型,int float long等,不过有些时候比如NSArray需要使用数字对象,而前面几种基本数据类型并不是对象,此时我们可以使用NSNumber.
 
对于每种基本数据类型,类方法都可以为它创建一个NSNumber对象,并设定值。这些方法都是以numberWith开头,如numberWithInteger等。也可以使用实例方法将以前创建的NSNuber对象设置为指定的值,这些方法是以initWith开头,如initWithFloat。
 
NSNumber类有很多方法,几种常见用法如下:
  • numberWith…:用初始值创建NSNumber对象,例如:numberWithInt:100;
  • integerValue:获取NSNumber对象的值,其它如charValue,floatValue等;
  • isEqualToNumber:比较两个NSNumber对象的数值是否相等,返回一个BOOL值。
  • compare:比较两个NSNumber对象数值的大小。返回结果有NSOrderedAscending,NSOrderedSame和NSOrderedDescending。
  • 最近objective-c语言扩展允许通过@表达式创建数字对象。如果@之后的值是一个表达式或者变量需要使用括号。
 
  1. #import <Foundation/Foundation.h>
  2. int main(int argc,const char * argv[])
  3. {
  4. @autoreleasepool {
  5. NSNumber *myNumber,*floatNumber,*intNumber;
  6.  
  7. intNumber=[NSNumber numberWithInt:];
  8. NSLog(@"%li",[intNumber integerValue]);//
  9.  
  10. floatNumber=[NSNumber numberWithFloat:100.00];
  11. NSLog(@"%f",[floatNumber floatValue]);//100.000000
  12.  
  13. myNumber=[NSNumber numberWithChar:'A'];
  14. NSLog(@"%c",[myNumber charValue]);//A
  15.  
  16. //判断两个数字是否相等
  17. if([intNumber isEqualToNumber:floatNumber]==YES)
  18. {
  19. NSLog(@"int number is equal to float number");//√
  20. }
  21. else{
  22. NSLog(@"int number is not equal to float number");
  23. }
  24.  
  25. //比较两个数字大小
  26. if([intNumber compare:myNumber]==NSOrderedAscending)
  27. {
  28. NSLog(@"int number is less than mynumber");
  29. }
  30. else{
  31. NSLog(@"int number is more than mynumber");//√
  32. }
  33.  
  34. //@语法
  35. intNumber=@;
  36. NSLog(@"%li",[intNumber integerValue]);//
  37. }
  38. return ;
  39. }
 

二 字符串

1.常量字符串对象
在字符串开头放一个@符号,就可以创建一个字符串常量对象。例如:@"Hello World!"
 
2.decription
NSLog(@"%@",a)中,%@既可以显示NSString对象,也可以显示其它对象。通过覆盖description方法,可以自定义对象的显示格式。
 
Complex.h
  1. #import <Foundation/Foundation.h>
  2. @interface Complex : NSObject
  3. @property int real,imaginary;
  4. -(void)setReal:(int)r andImaginary:(int)m;
  5. @end
Complex.m
  1. #import "Complex.h"
  2. @implementation Complex
  3. @synthesize real,imaginary;
  4. -(void)setReal:(int)r andImaginary:(int)m
  5. {
  6. self.real=r;
  7. self.imaginary=m;
  8. }
  9. //重写description,自定义输出格式
  10. -(NSString *)description
  11. {
  12. return [NSString stringWithFormat:@"%i + %ii",self.real,self.imaginary];
  13. }
  14. @end
 
main.m
  1. #import <Foundation/Foundation.h>
  2. #import "Complex15.h"
  3. int main(int argc,const char * argv[])
  4. {
  5. @autoreleasepool {
  6. Complex15 *c=[[Complex15 alloc] init];
  7. [c setReal: andImaginary:];
  8. NSLog(@"%@",c);//由<Complex15: 0x10010ffa0> 变为 1 + 2i
  9. }
  10. return ;
  11. }
 
2.不可变字符串NSString
注意:不可变字符串对象表明它所引用的字符串对象的字符不可改变,但是可以重新为它们指定为其它的不可变字符串对象。
 
NSString常用的方法:
  • length:获取字符串长度;
  • NSString stringWithString:复制字符串内容;
  • stringByAppendingString:连接两个字符串;
  • isEqualToString:比较两个字符串是否相等;
  • compare:字符串比较,常用于排序。比较结果为NSOrderedAssending,NSOrderedSame或NSOrderedDescending。
  • uppercaseString:字符串转换为大写;
  • lowercaseString:字符串转换为小写。
  1. int main(int argc, const char * argv[])
  2. {
  3.  
  4. @autoreleasepool {
  5. NSString *str1=@"This is String A";
  6. NSString *str2=@"This is String B";
  7. NSString *result;
  8. NSComparisonResult compareResult;
  9.  
  10. // 字符串长度
  11. NSLog(@"length of str1 is %lu",[str1 length]);//length of str1 is 16
  12. //复制字符串
  13. result=[NSString stringWithString:str1];
  14. NSLog(@"Copy str1,result is: %@",result);//Copy str1,result is: This is String A
  15. //追加字符串
  16. str2=[str1 stringByAppendingString:str2];
  17. NSLog(@"str1 append str2 is:%@",str2);//str1 append str2 is:This is String AThis is String B
  18. //字符串是否相等
  19. if([str1 isEqualToString:result]){
  20. NSLog(@"str1==result");//√
  21. }
  22. else{
  23. NSLog(@"str!=str2");
  24. }
  25. //比较字符串
  26. compareResult=[str1 compare:str2];
  27. if(compareResult==NSOrderedAscending){
  28. NSLog(@"str1<str2");//√
  29. }else if(compareResult==NSOrderedSame){
  30. NSLog(@"str1=str2");
  31. }else{
  32. NSLog(@"str1>str2");
  33. }
  34. //大小写转换
  35. result=[str1 uppercaseString];
  36. NSLog(@"upper case:%@",result);//upper case:THIS IS STRING A
  37. result=[str1 lowercaseString];
  38. NSLog(@"lower case:%@",result);//lower case:this is string a
  39. }
  40. return ;
  41. }
子字符串操作:
  • substringToIndex:返回一个子串,截取从开头到指定索引数的字符,但是不包括这个字符。
  • substringFromIndex:返回一个子串,截取从指定位置到字符串结尾的字符。
  • substringWithRange:返回指定范围的字符,参数是NSRange类型。
  • rangeOfString:在字符串中查找子串,返回结果是NSRange类型,它是一个结构变量,不是对象变量。返回结果range.location表示子串起始位置,range.length表示子串长度。如果找不到指定子串,则location为NSNotFound。
  1. int main(int argc, const char * argv[])
  2. {
  3.  
  4. @autoreleasepool {
  5. NSString *str1=@"This is String A";
  6. NSString *result;
  7. NSRange range;
  8.  
  9. //从开头取前N个字符
  10. result=[str1 substringToIndex:];
  11. NSLog(@"前4个字符:%@",result);//前4个字符:This
  12. //取第N个字符到结尾
  13. result=[str1 substringFromIndex:];
  14. NSLog(@"后8个字符:%@",result);//后8个字符:String A
  15. //提取第8到13个字符
  16. result=[[str1 substringFromIndex:] substringToIndex:];
  17. NSLog(@"第8到13个字符:%@",result);//第8到13个字符:String
  18. //另一种实现方式
  19. result=[str1 substringWithRange:NSMakeRange(,)];
  20. NSLog(@"第8到13个字符:%@",result);//第8到13个字符:String
  21. //查找子串
  22. range=[str1 rangeOfString:@"String"];
  23. NSLog(@"String子串位置%lu,长度是%lu",range.location,range.length);//String子串位置8,长度是6
  24. //查找不存在的子串
  25. range=[str1 rangeOfString:@"StringA"];
  26. if(range.location==NSNotFound){
  27. NSLog(@"未找到子串StringA");//√
  28. }else{
  29. NSLog(@"子串StringA位置为%lu",range.location);
  30. }
  31. }
  32. }
3.可变字符串NSMutableString
NSMutalbleString是NSString的子类,用来创建可以更改字符的字符串对象。
 
NSMutableString常用方法:
insertString:atIndex :在指定位置插入字符串;
appendString: 在字符串结尾插入字符串;
deleteCharactersInRange:删除字符串中指定数目的字符。
setString:直接设置可变字符串对象的内容;
 
  1. int main(int argc, const char * argv[])
  2. {
  3.  
  4. @autoreleasepool {
  5. NSString *str=@"This is String A";
  6. NSMutableString *mstr;
  7. NSRange substr;
  8.  
  9. mstr=[NSMutableString stringWithString:str];
  10. NSLog(@"%@",mstr);//This is String A
  11. //插入字符
  12. [mstr insertString:@" mutable" atIndex:];
  13. NSLog(@"%@",mstr);//This is mutable String A
  14. //追加字符
  15. [mstr appendString:@" and String B"];
  16. NSLog(@"%@",mstr);//This is mutable String A and String B
  17. //删除子串
  18. [mstr deleteCharactersInRange:NSMakeRange(, )];
  19. NSLog(@"%@",mstr);//This is mutable and String B
  20. //查找子串并删除
  21. substr=[mstr rangeOfString:@"and String B"];
  22. if(substr.location!=NSNotFound){
  23. [mstr deleteCharactersInRange:substr];
  24. NSLog(@"%@",mstr);//This is mutable
  25. }
  26. //直接设置可变字符串内容
  27. [mstr setString:@"This is String."];
  28. NSLog(@"%@",mstr);//This is String.
  29. //替换子串
  30. [mstr replaceCharactersInRange:NSMakeRange(, ) withString:@" mutable "];
  31. NSLog(@"%@",mstr);//This is mutable String.

学习ios【2】Objective-C 数字和字符串的更多相关文章

  1. python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字

    python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...

  2. IOS学习笔记2—Objective C—类、属性、方法

    以下是我学习IOS开发的一些笔记和心得,贴出来和大家一同分享,也希望大家能补充和纠错,共同进步 有Android和IOS开发问题也希望能和大家交流! Objective-C 1.OC是一门基于C的面向 ...

  3. Python 工匠:使用数字与字符串的技巧学习笔记

    #Python 工匠:使用数字与字符串的技巧学习笔记#https://github.com/piglei/one-python-craftsman/blob/master/zh_CN/3-tips-o ...

  4. JavaScript学习笔记3之 数组 & arguments(参数对象)& 数字和字符串转换 & innerText/innerHTML & 鼠标事件

    一.Array数组 1.数组初始化(Array属于对象类型) /*关于数组的初始化*/ //1.创建 Array 对象--方法1: var arr1=[]; arr1[0]='aa';//给数组元素赋 ...

  5. python学习第二天:数字与字符串转换及逻辑值

    1.数字与字符串的转化     #1.数字转字符,使用格式化字符串:         *1.demo = ‘%d’  %  source         *2.%d整型:%f 浮点型 :%e科学计数 ...

  6. Python学习笔记(五)--Python数据类型-数字及字符串

    Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...

  7. 数字int字符串str(深入学习)

    数字int字符串str 查看一个对象的类 如:如查看对象变量a是什么类          用到函数type(),函数值是要查看的对象变量 1 #!/usr/bin/env python 2 # -*- ...

  8. python学习之路-基本数据类型1 变量的概念、数字、字符串

    1 什么是数据类型? 每种编程语言都有自己的数据类型,用于标识计算机可以认识的数据,Python中主要的数据类型为字符串,整数,浮点数,列表,元祖,字典,集合七种主要的数据类型,其中以列表,字典为最主 ...

  9. 学习iOS

    最近想学习一下iOS开发,不过一点基础都没有,得先从熟悉object-C语法开始,在此把学习中的一些知识点作为记录. mac pro常用操作 学习ios[1]Objective-C 基本语法 学习io ...

  10. 学习ios(必看经典)牛人40天精通iOS开发的学习方法

    学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的学员到iOS开发高手的系统.专业的课程体系.以培养企业开发真正需要的人才为目标,每个知识点都用案例来讲 ...

随机推荐

  1. PXC(percona xtradb cluster)新加节点避免SST的方法

    环境: node1:192.168.0.100  pxc节点 node2:192.168.0.101  新节点 把新加入的节点先建立为node1的从库,可以使用mysqldump或innobackup ...

  2. SpringNet学习笔记一

    ---恢复内容开始--- 最近看了园子里的大神分享的springnet框架的知识,感觉挺不错的,自己闲下来也研究研究springnet.这几天看了springnet容器的基础篇IOC和AOP,也有点个 ...

  3. mysql 链接失败(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES))

    mysql链接失败(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)) 修改: # ...

  4. 死性不改ISO9000系列系统 2011q4~2016q1

    百度云链接: http://pan.baidu.com/s/1o8rO3W2 密码: kabg 2016q2由于发布没多久,可能会重新修改,暂时不转载.

  5. 阅读笔记 火球UML大战需求分析3

    在复习回顾的以前所学的UML 统一建模语言之后,要将他们融会贯通起来,必定要进行一次事件,这样才能更好地运用各种UML,所以,了解了所有的UML图之后,就要开始接收一个练习的项目了. 这里作者给的例子 ...

  6. RabbitMQ 基础概念

    Broker:消息协商器.消息队列的实体,它在TCP/IP等端口上监听AMQ消息 vHost:虚拟主机.功能上类似于web的虚拟主机,都是把数据按照功能或项目的不同划分为不同的虚拟主机:用户只被授予访 ...

  7. WinForm开发框架【细化权限至操作按钮】

    有不少园友经常问我程序有没有更新,真的很抱歉,最近因为工作原因一直很忙,导致程序有很长时间都没有更新了,首先在这里感谢关心俺的朋友们. 这几天好好看了一下原来的程序,还有很多地方需要改进,比如操作数据 ...

  8. Highcharts动态添加点数据

    Highcharts用来作为图表数据的展示十分方便,效果也比较好.highcharts不仅可以实现死数据的展示,也能实现动态数据的实时添加显示,类似财经股票的实时刷新效果,实现过程并不难,大致如下. ...

  9. 《BI那点儿事—数据的艺术》目录索引

    原创·<BI那点儿事—数据的艺术>教程免费发布 各位园友,大家好,我是Bobby,在学习BI和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料,本来只是内部学习使用,但为了方便 ...

  10. EasyUI-datagrid 对于展示数据进行处理(formatter)

    一:声明datagrid列,在列中添加formatter属性,并指定js方法 columns = [[ { title: '编号', field: 'Id', width: 100, sortable ...