Objective_C_04

15/12/9
//  Objective_C_04

#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//    1.字符串
    NSString *str1 = [[NSString alloc] initWithFormat:@"字符串:%d",1];
    NSLog(@"%@",str1);
    
    NSString *str2 = [NSString stringWithFormat:@"字符串:%d",2];
    NSLog(@"%@",str2);
    
    NSString *str3 = @"通过字面量的方式创建字符串";
//  相当于initWithString:方法
    NSLog(@"%@",str3);
    
//    2.获取字符串的长度
    NSUInteger length = [str1 length];
    NSLog(@"%lu",length);
    
//    3.截取字符串
    NSString *baseStr = @"原字符串";
    NSString *subStr = [baseStr substringToIndex:2];
    NSLog(@"%@",subStr);
    NSString *subStr1 = [baseStr substringFromIndex:1];
    NSLog(@"%@",subStr1);
    
//    创建NSRange结构体变量的时候,尽量使用NSMakeRange()
    NSString *subStr2 = [baseStr substringWithRange:NSMakeRange(1, 2)];
    NSLog(@"%@",subStr2);
    
//    4.判断字符串的前缀和后缀
    NSString *phone = @"15210538263";
//    前缀
    BOOL b = [phone hasPrefix:@"152"];
    NSLog(@"%d",b);
//    后缀
    BOOL b1 = [phone hasSuffix:@"268"];
    NSLog(@"%d",b1);
    
//    5.字符串拼接
    NSString *fileName = @"goldOne";
    NSString *newFileName = [fileName stringByAppendingFormat:@".avi"];
    NSLog(@"%@",newFileName);
    
//    6.字符串替换
    NSString *imgName = @"goldOne.png";
    NSString *newImgName = [imgName stringByReplacingCharactersInRange:NSMakeRange(8, 3) withString:@"jpg"];
    NSLog(@"%@",newImgName);
    
    
//    7.字符串的比较
    NSString *s1 = @"abc";
    NSString *s2 = @"acd";
    if ([s1 compare:s2] == NSOrderedAscending) {
        NSLog(@"s1 < s2");
    }else if ([s1 compare:s2] == NSOrderedSame){
        NSLog(@"s1 == s2");
    }else{
        NSLog(@"s1 > s2");
    }
    
//    8.字符串和数值类型转换
    NSString *intStr = @"123";
    NSInteger i = [intStr integerValue];
    NSLog(@"%ld",i);
    
    int a = 123;
    NSString *a1 = [NSString stringWithFormat:@"%d",a];
    NSLog(@"%@",a1);
    
//    9.大小写转换
    NSString *string = @"my naMe Is songKang";
    NSLog(@"原字符串:%@",string);
    NSLog(@"全大写字符串:%@",[string uppercaseString]);
    NSLog(@"全小写字符串:%@",[string lowercaseString]);
    NSLog(@"首字母大写字符串:%@",[string capitalizedString]);
    
    
//    NSMutableString
//    1.创建可变字符串
    NSMutableString *mutablestr1 = [[NSMutableString alloc] initWithCapacity:10];
    NSMutableString *mutablestr2 = [NSMutableString string];
//    字面量的方式只可以创建不可变的对象
    
//    NSMutableString *mutablestr3 = @"asdfasd";
//    NSLog(@"%@",*mutablestr3);
//    2.拼接字符串
    [mutablestr1 appendString:@"可变字符串"];
    NSLog(@"%@",mutablestr1);
    [mutablestr2 appendString:@"可变字符串"];
    NSLog(@"%@",mutablestr2);
    
//    3.插入字符串
    [mutablestr1 insertString:@"(插入的内存)" atIndex:3];
    NSLog(@"%@",mutablestr1);
    
//    4.删除字符串
    [mutablestr1 deleteCharactersInRange:NSMakeRange(3, 7)];
    NSLog(@"%@",mutablestr1);
    
    /*
     1.可变字符串拥有不可变字符串的所有方法
     2.不可变字符串将结果通过返回值传递出去,而可变字符串直接修改自身
     3.可变字符串的方法名更为直接
     4.不可变字符串效率更高
     5.能用不可变的就用不可变
     */
    
#pragma mark-----NSArray不可变数组
//    数组:NSArray
//    分为两种:可变数组NSMutableArray 不可变数组NSArray
//    NSArray是OC将数组中常用的操作打包整理成一个类
//    注意:数组里面存放的必须是对象
//    1.创建不可变数组
    NSArray *ar = [[NSArray alloc] initWithObjects:@"yuuos",@"iosajio",@"sidof",nil];
    NSLog(@"%@",ar);
    NSArray *as = [NSArray arrayWithObjects:@"sidof",@"ukhiiu",@"uiyutuy",nil];
    NSLog(@"%@",as);
//    使用字面量方式创建数组,不需要在后面添加nil
    NSArray *a3 = @[@"a",@"b"];
    NSLog(@"%@",a3);
//    2.获取数组元素个数
    NSLog(@"%ld",[ar count]);
//    3.根据索引值获取对象
    NSString *s11 = [ar objectAtIndex:1];
    NSLog(@"%@",s11);
    
//    4.根据对象获取所在的索引值
    NSUInteger s12 = [ar indexOfObject:@"sidof"];
    NSLog(@"indexOfObject:%lu",s12);
    
#pragma mark-----NSMutableArray可变数组-----
//    1.创建可变数组
    NSMutableArray *a0 = [[NSMutableArray alloc]initWithObjects: nil];
    NSLog(@"初始个数:%lu",[a0 count]);
    
//    2.分别添加自己的名和同桌的名
    [a0 addObjectsFromArray:@[@"hecheng",@"fantasy",@""]];
    [a0 addObject:@"changchao"];//直接在数组后面添加
    NSLog(@"添加后的个数:%@",a0);
    NSLog(@"添加后的个数:%lu",[a0 count]);
    
    for (int i = 0; i < 4; i++) {
        NSLog(@"%@",a0[i]);//空的不打印
    }
//    快速遍历(for(跟集合里面的对象类型一样 in 从哪个集合里面取值))
    for (NSString *str in a0) {
        if ([str isEqualToString:@"fantasy"]) {
            NSLog(@"相同");
            NSLog(@"%@",str);
        }
    }
    
//    3.插入一个姓名放到数组最前面
    [a0 insertObject:@"yagchao" atIndex:0];
    NSLog(@"%@",a0);
    
//    4.将最后一个人的名字替换成大写
    NSString *s = [[a0 lastObject]uppercaseString];
    NSLog(@"%@",s);
    NSLog(@"%@",a0);
    a0[[a0 count] -1] = s;
    NSLog(@"%@",a0);
    [a0 replaceObjectAtIndex:[a0 count]-1 withObject:s];
    NSLog(@"%@",a0);
    
//    5.交换第一个和最后一个的名字
    [a0 exchangeObjectAtIndex:0 withObjectAtIndex:[a0 count]-1];
    NSLog(@"%@",a0);
    
//    6.删除下标为2的元素
    [a0 removeObjectAtIndex:2];
    NSLog(@"%@",a0);
    
//    7.删除所有
    [a0 removeAllObjects];
    NSLog(@"%@",a0);
    
//    将下列内容,添加到数组中
//    12 34.7 67.2 ‘d’ YES
    NSRange range1 = NSMakeRange(1, 4);
    NSRange range2 = NSMakeRange(3, 8);
    
    NSMutableArray *array = [[NSMutableArray alloc]init];
    [array addObject:@(12)];
    [array addObject:@34.7];
    [array addObject:@67.2];
    [array addObject:@'d'];
    [array addObject:@YES];
    NSValue *a10 = [NSValue valueWithRange:range1];
    NSValue *b11 = [NSValue valueWithRange:range2];
    [array addObject:a10];
    [array addObject:b11];
    NSLog(@"%@",array);
    
//    NSValue 值对象
//    结构体(NSRange等)、指针等转换为NSValue
    NSRange range11 = NSMakeRange(2, 4);
    NSValue *value = [NSValue valueWithRange:range11];
    NSLog(@"%@",value);
    NSLog(@"%lu %lu",[value rangeValue].location,[value rangeValue].length);
    
//    NSNumber  数值对象
//    基本类型(int,float等)转换为NSNumber
    NSNumber *num = [NSNumber numberWithInt:3];
    NSNumber *num1 = [NSNumber numberWithFloat:3.14];
    NSLog(@"%@",num);
    NSLog(@"%@",num1);
//    NSNumber转换为基本类型(int,float等)
    int a112 = [num intValue];
    NSLog(@"%d",a112);
    
//    NSString
//    NSMutableString
//    NSArray
//    NSMutableArray
//    NSRange
//    NSValue
//    NSNumber

    return 0;
}

posted @ 2015-12-19 14:36  DH_Fantasy  阅读(71)  评论(0)    收藏  举报