OC_04_02

来源:互联网 发布:java类的初始化 编辑:程序博客网 时间:2024/06/10 07:43
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        /*
         构造字符串四种方式
            NSString 不可变字符串
         */
        
        //1.初始化一个字符串对象
        NSString *string1 = @"ibokanwisdom";
        
//        NSString *string2 = [NSString stringWithString:@"ibokanwisdom"];
//        NSString *string3 = [[NSString alloc] initWithString:@"ibokanwisdom"];
        
        //使用NSString的类方法来创建字符串,+ (instancetype)stringWithFormat:@"格式化标志符"
        NSString *string4 = [NSString stringWithFormat:@"%d,%f,hi guys",5,4.5];
        NSLog(@"string4 = %@",string4);
        
        //用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串的拼接
        NSString *string5 = @"Yong";
        NSString *string6 = @"666";
        NSString *string7 = [NSString stringWithFormat:@"%@%@",string5,string6];
        NSLog(@"string7 = %@",string7);
        
        //从本地文件中读取字符串
        NSStringEncoding encoding;// NSUTF8StringEncoding 中国专用
        NSError *error;
        
        NSString *path1 = @"/Users/8011/Desktop/OC/OC_04_02/OC_04_02/t.html";
        NSString *string8 = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:&error];
        NSLog(@"string8 = %@,error = %@",string8,error);
        
        //从网络读取字符串
//        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
//        NSString *string9 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
//        NSLog(@"string9 = %@",string9);
     
        
        //字符串的操作
        NSString *string10 = @"你是逗比么,我都受不了你了";
        
        //字符串属性   长度 length
        NSUInteger length = [string10 length];
        NSLog(@"length = %lu",length);
        
        //字符串的截取
        NSString *subString1 = [string10 substringToIndex:5];  //获取从字符串开头到字符串的to的位置的字符串内容,不包括to位置,并且从0开始算起
        NSLog(@"subString1 = %@",subString1);
        NSString *subString2 = [string10 substringFromIndex:6];//获取从字符串Form位置到结尾的字符串内容,包含Form位置的字符
        NSLog(@"subString2 = %@",subString2);
        NSString *subString3 = [string10 substringWithRange:NSMakeRange(2, 2)]; //前面2代表从哪里开始,后面2代表截多少个
        NSLog(@"subString3 = %@",subString3);
        
        //获取字符串的某个字符
        NSString *string12 = @"abcdefg";
        char c = [string12 characterAtIndex:0]; //根据字符串中的位置index来得到一个字符,注意字符串的索引是从0开始的
        NSLog(@"c = %c",c);
    
        //字符串比较,如何判断两个字符串是否相等
        if (subString2 == subString3) //内容和指针都相等时才成立
        {
            NSLog(@"subString2 和 subString3 相等");
        }
        else
        {
            NSLog(@"subString2 和 subString3 不相等");
        }
        
        /*
         如何才能让两个字符串的指针和内容都相等呢?(书p96)
         这里需要注意两个概念:  浅拷贝 和 深拷贝
         浅拷贝:是指源对象与拷贝对象公用一份实体,仅仅是引用的变量名称不同.
         
         深拷贝:是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另一个对象造成影响.
         
         在字符串中,[NSString stringWithString:] 方法用于浅拷贝一个现有的字符串产生一个字符串
         */
        
        NSString *subString4 = [NSString stringWithString:subString2];
        NSString *subString5 = [NSString stringWithFormat:@"%@",subString2];
        
        if (subString2 == subString5)
        {
            NSLog(@"subString2 和 subString5 相等");
        }
        else
        {
            NSLog(@"subString2 和 subString5 不相等");
        }
        
        //在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等
        if ([subString2 isEqualToString:subString5])
        {
            NSLog(@"subString2 和 subString5 内容相等 ");
        }
        else
        {
           NSLog(@"subString2 和 subString5 内容不相等 ");
        }
        
        //比较两个字符串的大小
        NSString *cmpString1 = @"hehehehehehe";
        NSString *cmpString2 = @"hahahahahaha";
        
        NSComparisonResult result = [cmpString1 compare:cmpString2];
        switch (result) {
            case NSOrderedAscending:
            {
                NSLog(@"cmpString1 < cmpString2,升序");
            }
                break;
            case NSOrderedSame:
            {
                NSLog(@"cmpString1 = cmpString2");
            }
                break;
                case NSOrderedDescending:
            {
                NSLog(@"cmpString1 > cmpString2,降序");
            }
                break;
            default:
                break;
        }

        //根据字符串拿到对应的range
        //NSString *string10 = @"你是逗比么,我都受不了你了";
        
        NSRange range = [string10 rangeOfString:@"逗比"];
        NSLog(@"%@",[NSValue valueWithRange:range]);
        
        //只输出第一个遇到该字符串的位置 及 该字符串的长度
        NSRange range1 = [string10 rangeOfString:@"你"];
        NSLog(@"%@",[NSValue valueWithRange:range1]);
        
        //判断字符串中是否有XX前缀 或 XX后缀
        NSString *string13 = @"http://www.baidu.com";
        
        if ([string13 hasPrefix:@"http://"])
        {
            NSLog(@"含有此前缀");
        }
        else
        {
            NSLog(@"不含有此前缀");
        }
        
        //判断是否为 jpg 或 png 后缀
        NSString *string14 = @"dkjfkj.jpg";
        if ([string14 hasSuffix:@".jpg"] || [string14 hasSuffix:@"png"])
        {
            NSLog(@"含有此后缀");
        }
        else
        {
            NSLog(@"不含有此后缀");
        }
        
        //字符串的拼接
        NSString *string15 = @"www.baidu.com";
        NSString *string16 = [@"http://" stringByAppendingString:string15]; //直接把两个字符串连接起来,调用者在前,传进来的字符串在后
        NSLog(@"%@",string16);
        
        //http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg
        NSString *string17 = @"http://img0.bdstatic.com/img/image/shouye";
        NSString *string18 = @"hbmnp003.jpg";
        NSString *string19 = [string17 stringByAppendingFormat:@"/%@",string18];//连接两个字符串,并且第二个字符串是按一定格式传进来的
        NSLog(@"%@",string19);
    
        NSString *string20 = [string17 stringByAppendingPathComponent:string18];//连接两个字符串,自动生成(/)
        NSLog(@"%@",string20);
        
        NSString *string21 = @"http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg";
        NSString *string22 =[string21 lastPathComponent];//只读取最后一个反斜杠后面的内容
        NSLog(@"%@",string22);
        
        NSString *theImageName = @"Yong";
        NSString *theImageName2 =@"png";
        NSString *string23 = [theImageName stringByAppendingPathExtension:theImageName2];//连接两个字符串,自动生成(.)
        NSLog(@"%@",string23);
        
        //字符串的其他常用方法
        //1.字符串的转换函数
        NSString *str1 = @"111add333";
        int a1 = [str1 intValue];
        float b1 = [str1 floatValue];
        double c1 = [str1 doubleValue];
        
        NSLog(@"%d",a1);
        
        //字符串大小写转换函数
        NSString *str2 = @"aaabb";
        NSString *str3 = [str2 uppercaseString];//将字符全部改写成大写
        NSLog(@"%@",str3);
        
        NSString *str4 = [str3 lowercaseString];//将字符全部改成小写
        NSLog(@"%@",str4);
        
        NSString *str5 = [str2 capitalizedString];//将首个字符改写成大写,其余的都小写
        NSLog(@"%@",str5);
        
        //字符串的替换函数
        NSString *str6 = [str2 stringByReplacingOccurrencesOfString:@"bb" withString:@"dd"];
        NSLog(@"%@",str6);
        
        NSString *str7 = [str2 stringByReplacingCharactersInRange:NSMakeRange(1, 2) withString:@"cc"];//将原字符串中range范围内的内容替换为replacement的内容
        NSLog(@"%@",str7);
        
        NSString *str8 = @"aa-bb-cc-dd-ee";
        NSArray *array = [str8 componentsSeparatedByString:@"-"];//以separator为分隔符,将原字符的内容进行分割,分割得到的结果放到一个数组里,作为返回值
        NSLog(@"array = %@",array);
        
        
        
        
        
    }
    return 0;
}
0 0
原创粉丝点击