学习ios【2】Objective-C 数字和字符串
一 数字
- numberWith…:用初始值创建NSNumber对象,例如:numberWithInt:100;
- integerValue:获取NSNumber对象的值,其它如charValue,floatValue等;
- isEqualToNumber:比较两个NSNumber对象的数值是否相等,返回一个BOOL值。
- compare:比较两个NSNumber对象数值的大小。返回结果有NSOrderedAscending,NSOrderedSame和NSOrderedDescending。
- 最近objective-c语言扩展允许通过@表达式创建数字对象。如果@之后的值是一个表达式或者变量需要使用括号。
#import <Foundation/Foundation.h>
int main(int argc,const char * argv[])
{
@autoreleasepool {
NSNumber *myNumber,*floatNumber,*intNumber; intNumber=[NSNumber numberWithInt:];
NSLog(@"%li",[intNumber integerValue]);// floatNumber=[NSNumber numberWithFloat:100.00];
NSLog(@"%f",[floatNumber floatValue]);//100.000000 myNumber=[NSNumber numberWithChar:'A'];
NSLog(@"%c",[myNumber charValue]);//A //判断两个数字是否相等
if([intNumber isEqualToNumber:floatNumber]==YES)
{
NSLog(@"int number is equal to float number");//√
}
else{
NSLog(@"int number is not equal to float number");
} //比较两个数字大小
if([intNumber compare:myNumber]==NSOrderedAscending)
{
NSLog(@"int number is less than mynumber");
}
else{
NSLog(@"int number is more than mynumber");//√
} //@语法
intNumber=@;
NSLog(@"%li",[intNumber integerValue]);//
}
return ;
}
二 字符串
#import <Foundation/Foundation.h>
@interface Complex : NSObject
@property int real,imaginary;
-(void)setReal:(int)r andImaginary:(int)m;
@end
#import "Complex.h"
@implementation Complex
@synthesize real,imaginary;
-(void)setReal:(int)r andImaginary:(int)m
{
self.real=r;
self.imaginary=m;
}
//重写description,自定义输出格式
-(NSString *)description
{
return [NSString stringWithFormat:@"%i + %ii",self.real,self.imaginary];
}
@end
#import <Foundation/Foundation.h>
#import "Complex15.h"
int main(int argc,const char * argv[])
{
@autoreleasepool {
Complex15 *c=[[Complex15 alloc] init];
[c setReal: andImaginary:];
NSLog(@"%@",c);//由<Complex15: 0x10010ffa0> 变为 1 + 2i
}
return ;
}
- length:获取字符串长度;
- NSString stringWithString:复制字符串内容;
- stringByAppendingString:连接两个字符串;
- isEqualToString:比较两个字符串是否相等;
- compare:字符串比较,常用于排序。比较结果为NSOrderedAssending,NSOrderedSame或NSOrderedDescending。
- uppercaseString:字符串转换为大写;
- lowercaseString:字符串转换为小写。
int main(int argc, const char * argv[])
{ @autoreleasepool {
NSString *str1=@"This is String A";
NSString *str2=@"This is String B";
NSString *result;
NSComparisonResult compareResult; // 字符串长度
NSLog(@"length of str1 is %lu",[str1 length]);//length of str1 is 16
//复制字符串
result=[NSString stringWithString:str1];
NSLog(@"Copy str1,result is: %@",result);//Copy str1,result is: This is String A
//追加字符串
str2=[str1 stringByAppendingString:str2];
NSLog(@"str1 append str2 is:%@",str2);//str1 append str2 is:This is String AThis is String B
//字符串是否相等
if([str1 isEqualToString:result]){
NSLog(@"str1==result");//√
}
else{
NSLog(@"str!=str2");
}
//比较字符串
compareResult=[str1 compare:str2];
if(compareResult==NSOrderedAscending){
NSLog(@"str1<str2");//√
}else if(compareResult==NSOrderedSame){
NSLog(@"str1=str2");
}else{
NSLog(@"str1>str2");
}
//大小写转换
result=[str1 uppercaseString];
NSLog(@"upper case:%@",result);//upper case:THIS IS STRING A
result=[str1 lowercaseString];
NSLog(@"lower case:%@",result);//lower case:this is string a
}
return ;
}
- substringToIndex:返回一个子串,截取从开头到指定索引数的字符,但是不包括这个字符。
- substringFromIndex:返回一个子串,截取从指定位置到字符串结尾的字符。
- substringWithRange:返回指定范围的字符,参数是NSRange类型。
- rangeOfString:在字符串中查找子串,返回结果是NSRange类型,它是一个结构变量,不是对象变量。返回结果range.location表示子串起始位置,range.length表示子串长度。如果找不到指定子串,则location为NSNotFound。
int main(int argc, const char * argv[])
{ @autoreleasepool {
NSString *str1=@"This is String A";
NSString *result;
NSRange range; //从开头取前N个字符
result=[str1 substringToIndex:];
NSLog(@"前4个字符:%@",result);//前4个字符:This
//取第N个字符到结尾
result=[str1 substringFromIndex:];
NSLog(@"后8个字符:%@",result);//后8个字符:String A
//提取第8到13个字符
result=[[str1 substringFromIndex:] substringToIndex:];
NSLog(@"第8到13个字符:%@",result);//第8到13个字符:String
//另一种实现方式
result=[str1 substringWithRange:NSMakeRange(,)];
NSLog(@"第8到13个字符:%@",result);//第8到13个字符:String
//查找子串
range=[str1 rangeOfString:@"String"];
NSLog(@"String子串位置%lu,长度是%lu",range.location,range.length);//String子串位置8,长度是6
//查找不存在的子串
range=[str1 rangeOfString:@"StringA"];
if(range.location==NSNotFound){
NSLog(@"未找到子串StringA");//√
}else{
NSLog(@"子串StringA位置为%lu",range.location);
}
}
}
int main(int argc, const char * argv[])
{ @autoreleasepool {
NSString *str=@"This is String A";
NSMutableString *mstr;
NSRange substr; mstr=[NSMutableString stringWithString:str];
NSLog(@"%@",mstr);//This is String A
//插入字符
[mstr insertString:@" mutable" atIndex:];
NSLog(@"%@",mstr);//This is mutable String A
//追加字符
[mstr appendString:@" and String B"];
NSLog(@"%@",mstr);//This is mutable String A and String B
//删除子串
[mstr deleteCharactersInRange:NSMakeRange(, )];
NSLog(@"%@",mstr);//This is mutable and String B
//查找子串并删除
substr=[mstr rangeOfString:@"and String B"];
if(substr.location!=NSNotFound){
[mstr deleteCharactersInRange:substr];
NSLog(@"%@",mstr);//This is mutable
}
//直接设置可变字符串内容
[mstr setString:@"This is String."];
NSLog(@"%@",mstr);//This is String.
//替换子串
[mstr replaceCharactersInRange:NSMakeRange(, ) withString:@" mutable "];
NSLog(@"%@",mstr);//This is mutable String.
学习ios【2】Objective-C 数字和字符串的更多相关文章
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- IOS学习笔记2—Objective C—类、属性、方法
以下是我学习IOS开发的一些笔记和心得,贴出来和大家一同分享,也希望大家能补充和纠错,共同进步 有Android和IOS开发问题也希望能和大家交流! Objective-C 1.OC是一门基于C的面向 ...
- Python 工匠:使用数字与字符串的技巧学习笔记
#Python 工匠:使用数字与字符串的技巧学习笔记#https://github.com/piglei/one-python-craftsman/blob/master/zh_CN/3-tips-o ...
- JavaScript学习笔记3之 数组 & arguments(参数对象)& 数字和字符串转换 & innerText/innerHTML & 鼠标事件
一.Array数组 1.数组初始化(Array属于对象类型) /*关于数组的初始化*/ //1.创建 Array 对象--方法1: var arr1=[]; arr1[0]='aa';//给数组元素赋 ...
- python学习第二天:数字与字符串转换及逻辑值
1.数字与字符串的转化 #1.数字转字符,使用格式化字符串: *1.demo = ‘%d’ % source *2.%d整型:%f 浮点型 :%e科学计数 ...
- Python学习笔记(五)--Python数据类型-数字及字符串
Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...
- 数字int字符串str(深入学习)
数字int字符串str 查看一个对象的类 如:如查看对象变量a是什么类 用到函数type(),函数值是要查看的对象变量 1 #!/usr/bin/env python 2 # -*- ...
- python学习之路-基本数据类型1 变量的概念、数字、字符串
1 什么是数据类型? 每种编程语言都有自己的数据类型,用于标识计算机可以认识的数据,Python中主要的数据类型为字符串,整数,浮点数,列表,元祖,字典,集合七种主要的数据类型,其中以列表,字典为最主 ...
- 学习iOS
最近想学习一下iOS开发,不过一点基础都没有,得先从熟悉object-C语法开始,在此把学习中的一些知识点作为记录. mac pro常用操作 学习ios[1]Objective-C 基本语法 学习io ...
- 学习ios(必看经典)牛人40天精通iOS开发的学习方法
学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的学员到iOS开发高手的系统.专业的课程体系.以培养企业开发真正需要的人才为目标,每个知识点都用案例来讲 ...
随机推荐
- HTTP 错误 500.23 - Internal Server Error
HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. IIS8.0详细错误 老版本WEB程序用 VS2013打开时 ...
- php 自动绑定di容器实现
<?php class Bim { public function doSth() { echo __METHOD__.PHP_EOL; } } class Bar { protected $b ...
- Thinkphp回顾之(四)查询方法深入学习
本次讲的查询方法主要有:表达式查询,模糊查询,between语句,in语句,区间查询,统计数据,普通方式查询,但大多数都只是引入数组而已,明白了第一个,其他的也就差不多全明白了,唯一要注意的是在后台中 ...
- 简述id,instancetype和__kindof的区别
id: 好处:可以调用任何对象方法 坏处:不能进行编译检查 + (id)person; instancetype 好处:自动识别当前类的对象 坏处:不会提示返回的类型 + (instancetype) ...
- Ubuntu 16.04 安装mysql并设置远程访问
说明: 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过ubuntu安装mysql,于是乎搜索了很多技术文件,比着葫芦画 ...
- ifconfig 下面的一些字段(errors, dropped, overruns)
一台机器经常收到丢包的报警,先看看最底层的有没有问题: # ethtool em2 | egrep 'Speed|Duplex' Speed: 1000Mb/s Duplex: Full # etht ...
- Mybatis映射文件
Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会 ...
- consul 模板配置内容的参数说明
datacenters {{datacenters}} 数据中心 file {{file "/path/to/local/file"}} 读取本地文件的内容.如果不可读的话,会报错 ...
- Spring和EJB3的技术对比
随着EJB3规范以及支持EJB3的Java EE应用服务器的即将发布,全新Java EE体系架构的新战争将拉开帷幕,在过去3年中如火如荼的Spring占据了Java EE应用开发基础平台的大半江山,面 ...
- hihoCoder 1432 : JiLi Number(吉利数)
hihoCoder #1432 : JiLi Number(吉利数) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 Driver Ji l ...