您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: