天天看点

Objective-C 字符串一 "不可变字符串"

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        // NSString 不可变的字符串
        // 1.初始化一个字符串
        NSString *string1 = @"ibokanwisdom";
        NSLog(@"string1 = %@",string1);   //string1 = ibokanwisdom
        
        
        //使用NSString的类方法来创建字符串、 + (instancetype)stringWithFormat:@"格式化表示符"
        NSString *string2 = [NSString stringWithFormat:@"%d, %.1f, hi guys",5,4.5];
        NSLog(@"string2 = %@",string2);   //string2 = 5, 4.5, hi guys
        
        
        //+ (instancetype)stringWithFormat:@"格式化表示符"  还可以拼接字符串
        NSString *string3 = @"Rick";
        NSString *string4 = @"666";
        NSString *string5 = [NSString stringWithFormat:@"%@,%@",string3, string4];
        NSLog(@"string5 = %@",string5);   //string5 = Rick,666
        
        
        //从本地文件获取字符串   stringWithContentsOfFile
        //   NSUTF8StringEncoding  代表中文
        NSError *error;
        NSString *string6 = @"/Users/zyx/Desktop/hello.html";
        NSString *string7 = [NSString stringWithContentsOfFile:string6 encoding:NSUTF8StringEncoding error:&error];
       // NSLog(@"string7 = %@",string7);
        
        
        //从网络读取字符串     stringWithContentsOfURL
        NSURL *url = [NSURL URLWithString:@"www.baidu.com"];
        NSString *string8 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
       // NSLog(@"strint8 = %@",string8);
        
        
        
        
        //字符串的操作
        NSString *string9 = @"你是逗逼吗、我都想打你了";
        
        
        //字符串的属性   长度  length
        NSUInteger length = [string9 length];
        NSLog(@"length = %ld",length);      //length = 12
        
        
        //字符串的截取  subStringToIndex
        NSString *string10 = [string9 substringToIndex:5];   //从起始位置0开始,
        NSLog(@"string10 = %@",string10);   // string10 = 你是逗逼吗
        
        NSString *string11 = [string9 substringFromIndex:6];  //从起始位置0到定义的位置X,从X开始 包含X 直到结束
        NSLog(@"string11 = %@",string11);   // string11 = 我都想打你了
        
        NSString *string12 = [string9 substringWithRange:NSMakeRange(3, 3)];    //从起始位置0  定义N开始  长度M结束
        NSLog(@"string12 = %@",string12);   // string12 = 逼吗、
        
        
        //获取某个字符
        NSString *string13 = @"abcdefg";
//        NSString *string14 = [string13 substringToIndex:3];
//        NSLog(@"string14 = %@",string14);   //string14 = abc
        char c = [string13 characterAtIndex:0];      //根据x数字  得到某个字符, 字符索引是从 0 开始
        NSLog(@"c = %c",c);   // c = a
        
        
        //比较字符串  如何判断字符串是否相等
        if (string10 == string11) {
            NSLog(@"string10 和 string11 相等");
        } else {
            NSLog(@"string10 和 string11 不想等");
        }
        
        
        NSString *subString1 = [NSString stringWithString:string13];
        NSLog(@"subString1 = %@",subString1);  //subString1 = abcdefg
        
        if(string13 == subString1)
        {
            //内容和指针都相等时、才成立
            NSLog(@" string13 == subString1    yes");
        }
        else
        {
            NSLog(@"string13 == subString1     no");
        }
        
        
        
        //在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等
        NSString *subString2 = [NSString stringWithFormat:@"%@",subString1];
        NSLog(@"subString2 = %@",subString2);
        
        
        if ([subString1 isEqualToString:subString2]) {
            NSLog(@"相等");
        }
        else
        {
            NSLog(@"不想等");
        }
        
        
        
        //比较字符串的大小
        NSString *compString1 = @"hahehehehe";
        NSString *compString2 = @"hehehehehe";
        NSComparisonResult resulr = [compString1 compare:compString2];  //compare 表示判断
        
        switch (resulr) {
            case NSOrderedAscending:
            { NSLog(@"compString1 < compString2");}
                break;
            case NSOrderedSame:
            { NSLog(@"compString1 == compString2");}
                break;
            case NSOrderedDescending:
            { NSLog(@"compString1 > compString2");}
                break;
            default:
                break;
        }
        
        
        //根据字符串拿到对应的range
        //NSString *string9 = @"你是逗逼吗、我都想打你了";
        NSRange range = [string9 rangeOfString:@"逗逼"];       //输出遇到该字符的 位置 以及 长度。从0开始
        NSLog(@"range = %@",[NSValue valueWithRange:range]);  //range = NSRange: {2, 2}
        
        //
        NSRange range1 = [string9 rangeOfString:@"你"];
        NSLog(@"%@",[NSValue valueWithRange:range1]);
        
        
        
        //判断字符串是否有 xx前缀 或 xx后缀
        NSString *string14 = @"http://www.baidu.com";
        if ([string14 hasPrefix:@"http://"]) {
            NSLog(@"有前缀");
        } else {
            NSLog(@"没有前缀");
        }
        
        NSString *string15 = @"avacag.jpg";
        if ([string15 hasSuffix:@".jpg"]) {
            NSLog(@"有后缀");
        } else {
            NSLog(@"没有后缀");
        }
        
        
        //字符串  拼接
        NSString *string16 = @"www.baidu.com";
        NSString *string17 = [@"http://" stringByAppendingString:string16];  //直接把两个字符串连接起来,调用者在前,传进来的字符串在后
        NSLog(@"string17 = %@", string17);    // string17 = http://www.baidu.com
        
        
        //http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg
        NSString *string18 = @"//http://img0.bdstatic.com/img/image/shouye";
        NSString *string19 = @"hbmnp003.jpg";
        NSString *string20 = [string18 stringByAppendingFormat:@"/%@",string19];  //按照一定的格式拼接
        NSLog(@"string20 = %@",string20);  //string20 = //http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg
        
        
        NSString *string21 = [string18 lastPathComponent];   //打印最后一个 ’/‘ 后面字符串
        NSLog(@"string21 = %@",string21);   //string21 = shouye
        
        
        NSString *string22 = @"Rick";
        NSString *string23 = @"666";
        NSString *string24 = [string22 stringByAppendingFormat:@".%@",string23];
        NSLog(@"string24 = %@",string24);     //string24 = Rick.666
        
        NSString *string25 = [string22 stringByAppendingPathExtension:string23];
        NSLog(@"string25 = %@",string25);     //string25 = Rick666
        
        
        //字符串的其他用法
        NSString *stu1 = @"111abcd333";
        int a1 = [stu1 intValue];
        NSLog(@"%d",a1);
        double b1 = [stu1 doubleValue];
        NSLog(@"%lf",b1);
        float c1 = [stu1 floatValue];
        NSLog(@"%f",c1);
        
        
        
        NSString *str1 = @"aaabbb";
        NSString *str2 = [str1 uppercaseString];       //将字符全部换成大写
        NSLog(@"str2 = %@", str2);  //str2 = AAABBB
        
        NSString *str3 = [str1 lowercaseString];       //将字符全部换成小写
        NSLog(@"str3 = %@",str3);   //str3 = aaabbb
        
        NSString *str4 = [str1 capitalizedString];     //将首字母换成大写,其余的都是小写
        NSLog(@"str4 = %@",str4);   //str4 = Aaabbb
        
        
        //字符串替换函数
        NSString *str5 = [str1 stringByReplacingOccurrencesOfString:@"b" withString:@"d"];  //替换
        NSLog(@"str5 = %@",str5);   //str5 = aaaddd
        
        NSString *str6 = [str1 stringByReplacingCharactersInRange:NSMakeRange(1, 2) withString:@"cc"];  //将原字符串中range范围内的内容替换成replacement的内容
        NSLog(@"str6 = %@",str6);   //str6 = accbbb
        
        NSString *str7 = @"aa-bb-cc-dd";
        NSArray *array = [str7 componentsSeparatedByString:@"-"];
        NSLog(@"array = %@", array);
//        array = (
//                 aa,
//                 bb,
//                 cc,
//                 dd
//                 )
       
             
    }
    return 0;
}
           

继续阅读