NSString NSArray

int main(int argc, const char * argv[]) {

//

//    

    // SDK

    // Software Development Kit

    // 软件开发

    // API

    // Application Programming Interface

    // 应用程序接口

    

    /*

     不可变字符串 Nsstring

     创建之后内容和长度不可改变

     

     */

    // 创建字符串

   // NSString *str1 = [NSString alloc]initWithString:@"刘庆春"];

    

   // NSString *str2 = [NSString stringWithString:@"微信"];

    // 字面量创建字符串

    // 字面量也是语法糖 syntax sugar 简化字符串的创建过程

    NSString *str3 = @"renren";

    //NSString *str4 = @"nihao";

    //NSString *str5 = @"zhangsan";

    //NSString *str6 = @"xuexue";

    NSLog(@"%@",str3);

    // 字符串长度

    NSLog(@"length:%lu",str3.length);

    // 取子串

    

    NSString *str4 = @"iPhonePlus";

    // fromIndex 从当前下表处取到字符串结尾 包含字符串下表

    NSString *str5 = [str4 substringFromIndex:4];

    // toIndex 从字符串开头取到某个下标结束  不包含下标

    NSString *str6 = [str4 substringToIndex:4];

    NSLog(@"%@",str6);//iPho

    NSLog(@"%@",str5);//nePlus

    // NSRange r = {3,4};// C 语言结构体定义

    NSString *str8 = [str4  substringWithRange:NSMakeRange(3, 4)];

    NSLog(@"str8:%@",str8);//str8:oneP

 

    // toIndex

    // Withrange

    

    // 拼接字符串

    NSString *str9 = [str4 stringByAppendingString:@"5288"];

    NSLog(@"str9:%@",str9);//iPhonePlus5288

    

    

    // 替换字符串

    NSString *str10 = [str9  stringByReplacingOccurrencesOfString:@"Plus" withString:@"7s"];

    NSLog(@"str10:%@",str10);// iPhone7s5288

    

    // 字符串相等判断

    NSString *str11 = @"123";

    NSString *str12 = @"123";

    if (str11 == str12) {

        NSLog(@"俩个字符串对象地址相同");//俩个字符串对象地址相同

    }

    

    if ([str11 isEqualToString:str11]) {

        

        NSLog(@"俩个字符串对象的内容相同");

        

    }

    

    // 判断前缀和/后缀

    if ([str4 hasPrefix:@"i"]) {

        NSLog(@"有前缀");

    }

    if ([str4 hasSuffix:@"s"]) {

        NSLog(@"有后缀");

    }

    //有前缀

//    2015-02-05 11:50:30.834 OC_NSSing NSArray[1016:54765] 有后缀

    // 字符串比较  (第一个不相同的字符串的比较)

    // 定义一个比较结果变量 用来存字符串比较结果

    NSString *str13 = @"iPhone6";

    NSString *str14 = @"iPhone5s";

    

    NSComparisonResult result =[str13 compare:str14];

    if (result == NSOrderedAscending) {

        NSLog(@"升序");

    }else if(result == NSOrderedDescending)

    {

        NSLog(@"降序");//降序

    

    } else{

        

        NSLog(@"相同");

    }

    

    

    

    /*

     万能转换公式

     

     */

    NSString *str15 = [NSString stringWithFormat:@"%@ lol %ld %f",str13, 100L ,12.4];

    NSLog(@"%@",str15);

    // iPhone6 lol 100 12.400000

    /*

     

     练习给定一个图片文件名,判断字符串中是否以

     “png”结尾,如果是就替换成“jpg”,如果 不是,就拼接”.jpg”

     */

    NSString *p1 = @"pic.png";

    NSString *p2 = @"photo";

    

    

    if ([p1 hasSuffix:@"png"]) {

        NSString *p3 = [p1 stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"];// pic.jpg

        NSLog(@"%@",p3);

    }else

    {

        NSString *p4 = [p1 stringByAppendingString:@".jpg"];

        NSLog(@"%@",p4);// photo.jpg

    }

    

    

    

//    if (![p2 hasSuffix:@"png" ]) {

//        NSString *p5 = [p2 stringByAppendingString:@".jpg"];

//        NSLog(@"%@",p5);

//        

//    }else

//    {

//        NSString *p6 = [p6 stringByReplacingOccurrencesOfString:@"png" withString:@"jpg" ];

//        NSLog(@"%@",p6);

//    }

//    

    /*

     可变的字符串 NSMutableString

     */

    // 创建可变字符串

    NSMutableString *mStr = [NSMutableString string];

    

    // 拼接

    [mStr appendString:@"iPhone"];

   

    // 插入

    [mStr insertString:@"Android" atIndex:2];

   NSLog(@" mStr : %@",mStr);// iPAndroidhone

    

    // 删除

    [mStr deleteCharactersInRange:NSMakeRange(2, 7)];

    //[mStr deleteCharactersInRange:NSMakePoint(2, 7)];

     NSLog(@" mStr : %@",mStr);// mStr : iPhone

    

    

    /*

     可变不可变的区别 

     不可变对象的操作都是产生了新的对象 可变对象都是再源对象基础上进行操作

     */

 

    

    

    /*

     

     不可变数组 NSArray   数组中只能存对象  集合类 数据类

     */

    // 创建数组对象

    NSArray *arr1 = [NSArray arrayWithObjects:@"数组",@"数",@"c", nil];

    NSLog(@"arr1 :%@",arr1);// 打不出汉字

    // 打印不出汉子

    //元素个数

    

    NSLog(@"count : %ld",arr1.count);// ount : 3

    

    // 数组访问

    NSLog(@"object:%@",[arr1 objectAtIndex:1]);// object:数

    

    // 遍历数组

    NSLog(@"======");

    

    for (NSInteger i = 0; i < arr1.count; i++) {

        NSLog(@"%@",[arr1  objectAtIndex:i]);

    }

    

    

    

    /*

     

     可变数组  NSMutableArray

     */

    // 可变数组对象

    // 通常创建空容器 用来存放数据对象

    NSMutableArray *mArr = [NSMutableArray array];

    

   // 添加元素  添加再数组最后

    

    [mArr addObject:@"lol"];

    Person *p = [[Person alloc]init];

    // 插入元素  按照下标位置添加元素

    [mArr insertObject:p atIndex:0];

    

    

    

    // 删除和替换

    [mArr removeObjectAtIndex:1];

    NSLog(@"mArr:%@",mArr);

    

    [mArr addObject:@"abc"];

    [mArr addObject:@"2432"];

    [mArr addObject:@"789"];

    [mArr addObject:@"chun"];

    

    

    // 替换

    [mArr replaceObjectAtIndex:2 withObject:@"asdm"];

    // 交换

    

    [mArr exchangeObjectAtIndex:1 withObjectAtIndex:3];

    NSLog(@"mArr:%@",mArr);

    

    

    // 练习

//    1、使用可变数组管理所有书籍(定义Book类,包含书 名和价格)。

//    2、数组可以添加、删除书籍。 3、可以从数组根据书名查找书籍,并修改书籍的价格 4、展示所有书籍清单(书名)。

    // 创建书本对象

    Book *b1 = [[Book alloc]initWithBookName:@"读者" price:12];

    Book *b2 = [[Book alloc]initWithBookName:@"nihao" price:13];

    

    // 创建容器数组

    NSMutableArray *aa1 = [NSMutableArray array];

    

    // 把书本对象添加再数组中

    [aa1 addObject:b1];

    [aa1 addObject:b2];

    NSLog(@"%@",aa1);

    

    // 查找

    for (NSInteger i = 0; i < aa1.count; i++) {

        Book *b = [aa1 objectAtIndex:i];

        if ([b.bookName isEqualToString:@"nihao"]) {

            b.price = 100;

        }

    }

    NSLog(@"%@",aa1);

    

    for (NSInteger i = 0; i < aa1.count; i++) {

        NSLog(@"%@",[[aa1 objectAtIndex:i] bookName]);

    }

    

  /*

   NSNumber NSValue  基础类型转换

   int ->

   */

    //int-> int

    NSNumber *num1 = [NSNumber numberWithInt:100];

    NSLog(@"%@",num1);// 对象

    NSLog(@"%d",[num1 intValue]);// 非对象

    

    // 结构体转换成对象

    

    NSRange r = NSMakeRange(3, 4);

    NSValue *value1 = [NSValue valueWithRange:r];

    NSLog(@"%@",value1);

    

    // NSValue - > NSRange

    NSLog(@"%ld",[value1 rangeValue].length); // value: 结构体转换成对象

    

    

    

    return 0;

}

 

 

@implementation Book

 

- (instancetype)initWithBookName:(NSString *)bookName price:(NSInteger)price

{

    //self = [super init];

    //if (self) {

        [self setBookName:bookName];

        [self setPrice:price];

   // }

    return self;

}

 

+ (instancetype)bookWithBookName:(NSString *)bookName price:(NSInteger)price

{

    Book *p1 = [[Book alloc]initWithBookName:bookName price:price];

    return p1;

}

- (NSString *)description

{

    return [NSString stringWithFormat:@"name:%@,price:%ld", [self bookName],[self price]];

}

@end

 

posted @ 2015-02-06 16:00  被阳光素描  阅读(174)  评论(0编辑  收藏  举报