oc NSString/NSArray/NSNumber



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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值