OC第四天-NSString,NSArray,NSNumber,数组遍历

NSString、NSArray、NSNumber、苹果帮助文档、值对象

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
//    NSString *我 = [[NSString alloc]init];
//    我 = @"fsdfsfsfsfsfs";
//    NSLog(@"我 = %@",我);


    //NSString *str1 = [[NSString alloc] initWithString:@"wwwwww"];

    NSString *s = [ NSString stringWithFormat:@"123我asdfads"];
//    用自定义的初始化方法initWithString来初始化一个字符串对象,如果参数是常量区字符串,则直接返回常量区的地址;如果参数是一个字符串对象,先将字符串对象中的值拷贝到堆区,然后返回堆区地址;
    NSString *str1 = [[NSString alloc] initWithString:s];


//    获取字符串长度,计算的是Unicode字符的个数,一个Unicode字符是unsiged short 类型,占两个字节
    NSUInteger strLength =[str1 length];
    NSLog(@"strlength = %lu",strLength);


//    获取子字符串的方法:从第几个位置开始直到字符串的结束
    NSString *str2 = [str1 substringFromIndex:3];//从第几个位置开始知道字符串的结束
    NSLog(@"str2 = %@",str2);
    NSString *str3 = [str1 substringToIndex:4];//从字符串的开始到第几个的位置结束
    NSLog(@"str3 = %@",str3);

//    定义一个结构体变量
    NSRange range = NSMakeRange(2, 4);
//    根据结构体变量来获取子字符串,开始位置是结构体变量的location,长度是结构体变量length
    NSString *str4 = [str1 substringWithRange:range];
    NSLog(@"str4 = %@",str4);

//    字符串拼接方法
    NSString *str5 = [str1 stringByAppendingString:@"你好"];
    NSLog(@"str5 = %@",str5);


//    
    NSString *str6 = [str1 stringByAppendingFormat:@"dgdgdgdgdgdfgdfgdg"];
    NSLog(@"str6 = %@",str6);


//    替换字符串
    NSString *string = @"hello world";
    NSString *string1 = [string stringByReplacingOccurrencesOfString:@"hello" withString:@"你好"];

    NSLog(@"string1 = %@",string1);


//    判断两个字符串是否相等,判断的两个字符串的内容绝对相等,大小写,字符串长度都是一致的
    NSString *s1 = @"1231";
    NSString *s2 = @"1232";
    NSLog(@"%d",[s1 isEqualToString:s2]);


//    字符串比较
    NSLog(@"compare = %ld", (long)[s1 compare:s2]);


//    练习1
//    
    NSString *png = @"12345.png";
//    判断字符串结尾是否相同,即 判断字符串是否以 XXX 结尾
    if ([png hasSuffix:@"png"]) {
        png = [png stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"];
    } else {
        png = [png stringByAppendingString:@"jpg"];
    }
    NSLog(@"png = %@",png);



//    可变字符串
//     创建不可变字符串对象, 如果用stringWithString:就是直接将常量区内存中的内容拷贝到堆区, 然后返回堆区地址
    NSMutableString *mutableStr = [NSMutableString stringWithString:@"12345"];

    NSLog(@"AAA = %p, mu = %p",@"12345",mutableStr);


//    可变字符串的拼接
    [mutableStr appendString:@"67890"];
    NSLog(@"mutableStr = %@",mutableStr);


//  可变字符串的插入    在第5个位置插入asd
    [mutableStr insertString:@"asd" atIndex:5];
    NSLog(@"mu = %@",mutableStr);

//    可变字符串的删除   从第2个位置开始删除4个字符
    NSRange delRange = NSMakeRange(2, 4);
    [mutableStr deleteCharactersInRange:delRange];
    NSLog(@"mu = %@",mutableStr);


//    练习2
    NSMutableString *mutablePng = [NSMutableString stringWithFormat:@"2345.png"];

    if ([mutablePng hasSuffix:@"png"]) {
        //mutablePng = [mutablePng stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"];
        NSRange muRange = [mutablePng rangeOfString:@"png"];
        [mutablePng replaceCharactersInRange:muRange withString:@"jpg"];


    }else {
        [mutablePng appendString:@".jpg"];
    }
    NSLog(@"mutablePng = %@",mutablePng);


//    通过便利构造器方法来创建一个不可变数组对象,结尾的nil表示结束
    NSArray *array = [NSArray arrayWithObjects:@"3" ,@"4",@"5",nil];
    NSLog(@"array = %@",array);
//    获取数组元素的个数
    NSLog(@"count = %ld",[array count]);
//   获取数组某一个位置的值
    NSLog(@"indexobjct = %@",[array objectAtIndex:1]);


//    可变数组
//    通过元素个数来创建可变数组
    NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:1];
//    给可变数组添加元素
    [mutableArray addObjectsFromArray:array];
    NSLog(@"mutableArray = %@",mutableArray);


//    插入
    [mutableArray insertObject:@"20" atIndex:0];
    NSLog(@"mutableArray = %@",mutableArray);


//    删除
    [mutableArray removeObjectAtIndex:1];
    NSLog(@"dellar = %@", mutableArray);



//    数组的遍历
//    快速枚举遍历

    for (NSString *ss in array) {
        NSLog(@"ss = %@",ss);
    }


//    创建一个NSNumber对象
    NSNumber *num1 = [NSNumber numberWithInt:10];
//    获取NSNumber对象的数值
    NSLog(@"num1 = %d",[num1 intValue]);


//    NSValue
//    用便利构造器 创建一个NSValue对象
    NSValue *value = [NSValue valueWithRange:NSMakeRange(10, 20)];
    NSLog(@"value = %@",value);
//    通过NSRange获取结构体变量的值
    NSRange ra = [value rangeValue];
    NSLog(@"ra = %lu",ra.location);


    int a = 20;

    NSValue *intValue = [NSValue valueWithPointer:&a];
    NSLog(@"intValue = %@",intValue);
    int *p = [intValue pointerValue];
    NSLog(@"pointer  = %d",*p);



    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值