oc NSString/NSArray/NSNumber
2015-08-18 22:24
330 查看
int main(int argc, const char * argv[]) {
@autoreleasepool {
#pragma mark ----创建字符串对象
//第一种。
NSString *str1 = [[NSString alloc]init];
//相当于setter方法。
str1=@"字符串";
//第二种。-创建字符串常量对象--常量区。
NSString *str2=@"十一";
//现在这种方式(initWithSting)已经弃用了,它的提示是让你使用第二种。
// NSString *string=[[NSString alloc]initWithString:@"酷的人都在好好上课"];
//第三种。-通过初始化的方式创建。
NSString *str3=[[NSString alloc]initWithFormat:@"%@",str2];
//第四种:使用便利构造器创建。
NSString *str4=[NSString stringWithFormat:@"构造器构造一瓶%@",drink];
//这个方式也会提示使用第二种。
#pragma mark ------字符串长度,范围----------
//获取字符串长度,单位不是字节,获取的是字符的个数。
NSString *strlength=@"北京";
NSUInteger stelen=[strlength length];
//获取某个小字符串在大字符串中的范围,并且这个某个小字符串必须包含在大字符串中。
//NSRange是一个结构体,有两个成员变量:location存起始位置,length存长度
//location==>后面那个字符串在前面那个字符串的首地址 length==>后面字符串本身的长度。
NSRange range1=[strlength rangeOfString:@"海淀"];
#pragma mark ------字符串拼接,分割,替换---------------
//NSString是不可变的字符串,所有的“可变操作”的实质是:通过执行方法,返回一个新的字符串对象。
//字符串拼接。
NSString *strChange1=@"你好,你不好";
NSString *strChange2=[strChange1 stringByAppendingFormat:@"天天向上%d",30];
NSString *stringChange3=[strChange1 stringByAppendingString:@"本报吧"];
//分割。
NSArray *strArray1=[strChange2 componentsSeparatedByString:@"天天"];
//substringToIndex 从0开始,索引到n-1。(也就是前n个数)
NSString *strArray5=[strArray2 substringToIndex:5];
//获取字串,从索引位置开始,一直到结尾字符。
NSString *strArray6=[strArray2 substringFromIndex:8];
//截取字串
NSRange range2=NSMakeRange(4, 5);
NSString *strChange7=[strArray2 substringWithRange:range2];
//替换
NSString *strChange8=[strArray2 stringByReplacingOccurrencesOfString:@"should" withString:@"更换"];
//
NSRange range3=NSMakeRange(4, 6);
NSString *strChange9=[strArray2 stringByReplacingCharactersInRange:range3 withString:@"must"];
#pragma mark ----------字符串的比较-------------------
//
NSString *strCom=@"哈巴狗奔溃";
//判断前缀
BOOL bool1=[strCom hasPrefix:@"狗"];
//判断后缀
BOOL bool2=[strCom hasSuffix:@"奔溃"];
//判断两个字符是否相同
BOOL bool21=[strCom isEqualToString:@"哈巴狗"];
//比较 结果 -1是升序 0相等 1是降序
strCom=@"yibella";
NSString *strCom1=@"yibell";
NSInteger result1=[strCom compare:strCom1];
if (result1==-1) {
NSLog(@"%@比%@小",strCom,strCom1);
}else if (result1==0){
NSLog(@"%@跟%@一样大",strCom,strCom1);
}else{
NSLog(@"%@比%@大",strCom,strCom1);
}
#pragma mark ------可变字符串-------
//创建可变字符串 NSString是父类 NSMutableString是子类 因为子类可以调用父类的方法。
//NSString进行拼接,替换,本质上是得到一个新的字符串;而NSMutableString,实质上是修改自身,并还可以进行删除、插入等。
//NSString有返回值(NSString*); NSMutable是没有返回值的。
NSMutableString *strM1=[[NSMutableString alloc]init];
[strM1 appendFormat:@"周屹,你在干嘛"];
//当使用NSString这个类中的方法时,都需要一个字符串指针来接收结果。
//一定要注意每一个NSString的方法的返回值的类型,要用跟返回值相同类型的类型去接收返回值。
NSString *strM2=[strM1 stringByAppendingString:@"你也真是够了"];
//而使用NSMutableString类中的方法时,是不需要额外的接收者,自己就是自己的接收者。
[strM1 insertString:@"都怪自己太天真,太傻" atIndex:3];
NSRange rangeForNSSMutableString=NSMakeRange(2, 4);
[strM1 deleteCharactersInRange:rangeForNSSMutableString];
[strM1 replaceCharactersInRange:rangeForNSSMutableString withString:@"好好学习,天天向上。"];
[strM1 appendString:@"你好啊"];
[strM1 setString:@"代码虐我千百遍,我待她如初见"];
#pragma mark --------不可变数组-----------
NSArray *arrayNS=[[NSArray alloc]initWithObjects:@"kown",@"titt",@"hnjg", nil];
//获取元素格式
[arrayNS count];
//访问元素--头
NSLog(@"%@",[arrayNS firstObject]);
//---尾
NSLog(@"%@",[arrayNS lastObject]);
#pragma mark ----------可变数组-------------
//NSMutableArray : NSArray
NSMutableArray *arrayMA=[NSMutableArray array];
[arrayMA addObject:@"yihella"];
[arrayMA addObject:@"poppy"];
[arrayMA addObject:@"jessca"];
[arrayMA insertObject:@"kimi" atIndex:1];
[arrayMA removeObject:@"kimi"];
[arrayMA removeObjectAtIndex:2];
[arrayMA removeAllObjects];
[arrayMA addObject:@"hebi"];
[arrayMA addObject:@"dady"];
[arrayMA removeLastObject];
NSArray *arrayT_T=[[NSArray alloc]initWithObjects:@"a",@"b",@"c", nil];
//在原来的可变数组元素基础上添加一个不可变数组的元素
[arrayMA addObjectsFromArray:arrayT_T ];
//数组元素之间的内部交换--一定要注意用数组,不要越界,不要越界,不要越界。
[arrayMA exchangeObjectAtIndex:2 withObjectAtIndex:3];
//遍历---具体到数组的哪一个
for (int i=0; i<[arrayMA count]; i++) {
NSLog(@"arrayMA[%d]:%@",i,arrayMA[i]);
}
//访问具体的某一个,注意越界问题
NSLog(@"%@",arrayMA[2]);
#pragma mark -------NSNumber 数值对象-----------
//把一些基本数据类的数值转换成一个对象
NSNumber *nsNumber=[[NSNumber alloc]initWithInt:8];
//把一个float的数转换成NSNumber对象
NSNumber *nsNumberFloat=[[NSNumber alloc]initWithFloat:3.45];
//把NSNumber对象转换成基本数据类型的数
NSLog(@"%d",[nsNumber intValue] );
NSLog(@"%.3f",[nsNumberFloat floatValue]);
return 0;
}
====》Book.h
#import <Foundation/Foundation.h>
@interface Book : NSObject
{
NSString *_bookname;
float _price;
}
-(id)initWithBookname:(NSString*)bookname Price:(float)price;
+(id)book_bookname:(NSString*)bookname price:(float)price;
-(void)setBookname:(NSString*)bookname Price:(float)price;
-(void)setPrice:(float)price;
-(id)bookname;
-(float)price;
-(NSString *)description;
@end
======》Book.m
#import "Book.h"
@implementation Book
-(id)initWithBookname:(NSString*)bookname Price:(float)price{
self=[super init];
if (self) {
_bookname=bookname;
_price=price;
}
return self;
}
+(id)book_bookname:(NSString*)bookname price:(float)price{
Book *book=[[Book alloc]initWithBookname:bookname Price:price];
return book;
}
-(void)setBookname:(NSString*)bookname Price:(float)price{
_bookname=bookname;
_price=price;
}
-(void)setPrice:(float)price{
_price=price;
}
-(id)bookname{
return _bookname;
}
-(float)price{
return _price;
}
-(NSString *)description{
return [NSString stringWithFormat:@"%@,%.2f",_bookname,_price];
}
@end
@autoreleasepool {
#pragma mark ----创建字符串对象
//第一种。
NSString *str1 = [[NSString alloc]init];
//相当于setter方法。
str1=@"字符串";
//第二种。-创建字符串常量对象--常量区。
NSString *str2=@"十一";
//现在这种方式(initWithSting)已经弃用了,它的提示是让你使用第二种。
// NSString *string=[[NSString alloc]initWithString:@"酷的人都在好好上课"];
//第三种。-通过初始化的方式创建。
NSString *str3=[[NSString alloc]initWithFormat:@"%@",str2];
//第四种:使用便利构造器创建。
NSString *str4=[NSString stringWithFormat:@"构造器构造一瓶%@",drink];
//这个方式也会提示使用第二种。
#pragma mark ------字符串长度,范围----------
//获取字符串长度,单位不是字节,获取的是字符的个数。
NSString *strlength=@"北京";
NSUInteger stelen=[strlength length];
//获取某个小字符串在大字符串中的范围,并且这个某个小字符串必须包含在大字符串中。
//NSRange是一个结构体,有两个成员变量:location存起始位置,length存长度
//location==>后面那个字符串在前面那个字符串的首地址 length==>后面字符串本身的长度。
NSRange range1=[strlength rangeOfString:@"海淀"];
#pragma mark ------字符串拼接,分割,替换---------------
//NSString是不可变的字符串,所有的“可变操作”的实质是:通过执行方法,返回一个新的字符串对象。
//字符串拼接。
NSString *strChange1=@"你好,你不好";
NSString *strChange2=[strChange1 stringByAppendingFormat:@"天天向上%d",30];
NSString *stringChange3=[strChange1 stringByAppendingString:@"本报吧"];
//分割。
NSArray *strArray1=[strChange2 componentsSeparatedByString:@"天天"];
//substringToIndex 从0开始,索引到n-1。(也就是前n个数)
NSString *strArray5=[strArray2 substringToIndex:5];
//获取字串,从索引位置开始,一直到结尾字符。
NSString *strArray6=[strArray2 substringFromIndex:8];
//截取字串
NSRange range2=NSMakeRange(4, 5);
NSString *strChange7=[strArray2 substringWithRange:range2];
//替换
NSString *strChange8=[strArray2 stringByReplacingOccurrencesOfString:@"should" withString:@"更换"];
//
NSRange range3=NSMakeRange(4, 6);
NSString *strChange9=[strArray2 stringByReplacingCharactersInRange:range3 withString:@"must"];
#pragma mark ----------字符串的比较-------------------
//
NSString *strCom=@"哈巴狗奔溃";
//判断前缀
BOOL bool1=[strCom hasPrefix:@"狗"];
//判断后缀
BOOL bool2=[strCom hasSuffix:@"奔溃"];
//判断两个字符是否相同
BOOL bool21=[strCom isEqualToString:@"哈巴狗"];
//比较 结果 -1是升序 0相等 1是降序
strCom=@"yibella";
NSString *strCom1=@"yibell";
NSInteger result1=[strCom compare:strCom1];
if (result1==-1) {
NSLog(@"%@比%@小",strCom,strCom1);
}else if (result1==0){
NSLog(@"%@跟%@一样大",strCom,strCom1);
}else{
NSLog(@"%@比%@大",strCom,strCom1);
}
#pragma mark ------可变字符串-------
//创建可变字符串 NSString是父类 NSMutableString是子类 因为子类可以调用父类的方法。
//NSString进行拼接,替换,本质上是得到一个新的字符串;而NSMutableString,实质上是修改自身,并还可以进行删除、插入等。
//NSString有返回值(NSString*); NSMutable是没有返回值的。
NSMutableString *strM1=[[NSMutableString alloc]init];
[strM1 appendFormat:@"周屹,你在干嘛"];
//当使用NSString这个类中的方法时,都需要一个字符串指针来接收结果。
//一定要注意每一个NSString的方法的返回值的类型,要用跟返回值相同类型的类型去接收返回值。
NSString *strM2=[strM1 stringByAppendingString:@"你也真是够了"];
//而使用NSMutableString类中的方法时,是不需要额外的接收者,自己就是自己的接收者。
[strM1 insertString:@"都怪自己太天真,太傻" atIndex:3];
NSRange rangeForNSSMutableString=NSMakeRange(2, 4);
[strM1 deleteCharactersInRange:rangeForNSSMutableString];
[strM1 replaceCharactersInRange:rangeForNSSMutableString withString:@"好好学习,天天向上。"];
[strM1 appendString:@"你好啊"];
[strM1 setString:@"代码虐我千百遍,我待她如初见"];
#pragma mark --------不可变数组-----------
NSArray *arrayNS=[[NSArray alloc]initWithObjects:@"kown",@"titt",@"hnjg", nil];
//获取元素格式
[arrayNS count];
//访问元素--头
NSLog(@"%@",[arrayNS firstObject]);
//---尾
NSLog(@"%@",[arrayNS lastObject]);
#pragma mark ----------可变数组-------------
//NSMutableArray : NSArray
NSMutableArray *arrayMA=[NSMutableArray array];
[arrayMA addObject:@"yihella"];
[arrayMA addObject:@"poppy"];
[arrayMA addObject:@"jessca"];
[arrayMA insertObject:@"kimi" atIndex:1];
[arrayMA removeObject:@"kimi"];
[arrayMA removeObjectAtIndex:2];
[arrayMA removeAllObjects];
[arrayMA addObject:@"hebi"];
[arrayMA addObject:@"dady"];
[arrayMA removeLastObject];
NSArray *arrayT_T=[[NSArray alloc]initWithObjects:@"a",@"b",@"c", nil];
//在原来的可变数组元素基础上添加一个不可变数组的元素
[arrayMA addObjectsFromArray:arrayT_T ];
//数组元素之间的内部交换--一定要注意用数组,不要越界,不要越界,不要越界。
[arrayMA exchangeObjectAtIndex:2 withObjectAtIndex:3];
//遍历---具体到数组的哪一个
for (int i=0; i<[arrayMA count]; i++) {
NSLog(@"arrayMA[%d]:%@",i,arrayMA[i]);
}
//访问具体的某一个,注意越界问题
NSLog(@"%@",arrayMA[2]);
#pragma mark -------NSNumber 数值对象-----------
//把一些基本数据类的数值转换成一个对象
NSNumber *nsNumber=[[NSNumber alloc]initWithInt:8];
//把一个float的数转换成NSNumber对象
NSNumber *nsNumberFloat=[[NSNumber alloc]initWithFloat:3.45];
//把NSNumber对象转换成基本数据类型的数
NSLog(@"%d",[nsNumber intValue] );
NSLog(@"%.3f",[nsNumberFloat floatValue]);
return 0;
}
====》Book.h
#import <Foundation/Foundation.h>
@interface Book : NSObject
{
NSString *_bookname;
float _price;
}
-(id)initWithBookname:(NSString*)bookname Price:(float)price;
+(id)book_bookname:(NSString*)bookname price:(float)price;
-(void)setBookname:(NSString*)bookname Price:(float)price;
-(void)setPrice:(float)price;
-(id)bookname;
-(float)price;
-(NSString *)description;
@end
======》Book.m
#import "Book.h"
@implementation Book
-(id)initWithBookname:(NSString*)bookname Price:(float)price{
self=[super init];
if (self) {
_bookname=bookname;
_price=price;
}
return self;
}
+(id)book_bookname:(NSString*)bookname price:(float)price{
Book *book=[[Book alloc]initWithBookname:bookname Price:price];
return book;
}
-(void)setBookname:(NSString*)bookname Price:(float)price{
_bookname=bookname;
_price=price;
}
-(void)setPrice:(float)price{
_price=price;
}
-(id)bookname{
return _bookname;
}
-(float)price{
return _price;
}
-(NSString *)description{
return [NSString stringWithFormat:@"%@,%.2f",_bookname,_price];
}
@end
相关文章推荐
- UVA 11426 GCD - Extreme (II) (数论|欧拉函数)
- woj1572 Cyy and Fzz KMP / AC自动机 + DP
- 递归+解析 SRM 593 Division Two - Level Two: WolfDelaymaster
- GoAhead网页提交内容
- hdu 2085 java 核反应堆
- 一些小笔记
- linux总结应用之三 建立内核
- win7下android开发环境的搭建
- MongoDB基本使用
- 老版本AMI的根EBS大小问题
- activeMq笔记
- oc语法04
- Windows编程零基础入门:1.1 Windows是什么?
- ERROR 1064 (HY000): ChildTable multi insert not provided
- BMC IPMI常用命令
- Task Schedule(Hdu3572网络流)
- Java 实现m个数全排列组合以及从M中选取N个数(有序)
- try-catch和throw,throws的区别和联系
- OC语法02
- Android输入框中加入清除按钮