Object-C 课堂笔记4.1 NSString_字符串

来源:互联网 发布:全面风险管理数据 编辑:程序博客网 时间:2024/05/07 11:56
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
     
        // C语言中字符串是由char(ASCII码)字符组成
//        char sex = 'm';
//        char *sex1 = "male";
//        char *sex2[2] = {"male", "fmale"};
//        printf("%s", sex2[1]);
        
        
       // OC的字符串是由unichar(Unicode)码组成
        
        // 不可变字符串 NSString 长度和内容都是不能变的
        
        // 字符串的创建
        {
        // 创建一个常量字符串, 字面量, 语法糖
//        int a = 10;

       NSString *str = @"我勒个去";
        NSLog(@"%@", str);
        
       // 创建一个格式化字符串
        NSString *str1 = [[NSString alloc] initWithFormat:@"%@, %d大湿胸, 师傅被妖怪抓走了", str, 3];
        NSLog(@"%@", str1);
        
        NSString *str2 = [NSString stringWithFormat:@"%@, 大湿胸, 师傅又被妖怪抓走了", str];
        NSLog(@"%@", str2);
        
        NSString *str3 = [NSString stringWithFormat:@"%@ %@", str1, str2];
        NSLog(@"%@", str3);
        
       // 通过另外一个字符串创建字符串
        NSString *str4 = [[NSString alloc] initWithString:str3];
        NSLog(@"%@", str4);
        
//        NSString *str5 = [[NSString alloc] initWithString:@"哈哈哈哈"];
        }
            
       // 字符串常用方法
        
        // 1. 字符串的截取
        {
        NSString *str11 = @"HelloWorld!";
        
        // 从索引为 5 处开始, 截取到最后
        NSString *str12 = [str11 substringFromIndex:5];
        NSLog(@"%@", str12);
        
         // 从开始截取到索引处, 但是并不包含
        NSString *str13 = [str11 substringToIndex:3];
        NSLog(@"%@", str13);
       
        // 快速查看帮助文档, 按住alt(option), 点击想要查阅的内容
        
        // 结构体, 有两个成员变量, location 截取开始的位置, length, 截取的长度
        NSRange range = {5, 5};
        NSString *str14 = [str11 substringWithRange:range];
        NSLog(@"%@", str14);
        }
            
      // 2. 字符串的拼接
        {
            NSString *str11 = @"HelloWorld!";
        NSString *str21 = [str11 stringByAppendingString:@"新的一天又开始了"];
        NSLog(@"%@", str21);
        }
      
      // 3. 字符串的比较
        {
                   // 判断两个字符串的内容是否一样
        BOOL result = [str11 isEqualToString:str21];
        if (result) {
            NSLog(@"两个字符串的内容一样");
        }
        else{
            NSLog(@"不一样");
        }
        
       // 字符串的比较
        NSComparisonResult cmpResult = [str11 compare:str21];
        switch (cmpResult) {
            case NSOrderedAscending:
                NSLog(@"str11 比 str21 小");
                break;
            case NSOrderedSame:
                NSLog(@"str11 和 str21 一样大");
                break;
            case NSOrderedDescending:
                NSLog(@"str11 比 str21 大");
                break;
            default:
                break;
        }
        }
        
      // 4. 判断字符串的开头和结尾
        {
        NSString *str41 = @"Jannifer Lawrence.avi";
        
       // (1) 是否以某某开头
       BOOL result41 = [str41 hasPrefix:@"Jannif"];
        if (result41) {
            NSLog(@"詹妮弗");
        }
        
       // (2) 是否以某某结尾
       BOOL result42 = [str41 hasSuffix:@".avi"];
        if (result42) {
            NSLog(@"这是一部小电影");
        }
        
       // (3) 是否包含某个字符串
        BOOL result43 = [str41 containsString:@"fer Law"];
        if (result43) {
            NSLog(@"劳伦斯");
        }
        }
        
      // 5. 大小写转换
        {
        NSString *str51 = @"heLLo gegsgW";
        
        // 全部转为大写
        NSString *str52 = [str51 uppercaseString];
        NSLog(@"%@", str52);
        
        // 全部转位小写
        NSString *str53 = [str51 lowercaseString];
        NSLog(@"%@", str53);
        
       // 每个单词的首字母大写, 其余小写
        NSString *str54 = [str51 capitalizedString];
        NSLog(@"%@", str54);
        }
        
      // 6. C语言字符串和OC字符串的相互转换
        {
        // 将C字符串转换为OC字符串
        NSString *str61 = [[NSString alloc] initWithUTF8String:"呵呵"];
        NSLog(@"%@", str61);
        
        // 将OC字符串转换为C字符串
        const char *cStr = [str61 UTF8String];
        printf("%s\n", cStr);
        }
      
      // 7. 字符串的替换
        {
        NSString *str71 = @"HelloWorld";
        
        // 将 str71 中的所有的 o 换成 逗逼
        NSString *str72 = [str71 stringByReplacingOccurrencesOfString:@"o" withString:@"逗逼"];
        NSLog(@"%@", str72);
        
        // 通过 range 来替换
        NSString *str73 = [str71 stringByReplacingCharactersInRange:NSMakeRange(5, 5) withString:@"Sweety"];
        NSLog(@"%@", str73);
        }
       
// 可变字符串 NSMutableString 继承于NSString
        
        // 错误写法
//        NSMutableString *mStr = @"test";
        NSMutableString *mStr = [[NSMutableString alloc] initWithString:@"ione"];
        
        // 插入字符串, 没有返回值, 操作的是自身
        [mStr insertString:@"Ph" atIndex:1];
        NSLog(@"%@", mStr);
        
        // 删除字符串
        [mStr deleteCharactersInRange:NSMakeRange(3, 3)];
        NSLog(@"%@", mStr);
        
        // 替换
        [mStr replaceCharactersInRange:NSMakeRange(2, 1) withString:@"hone"];
        NSLog(@"%@", mStr);
        
        // 拼接
        [mStr appendString:@"6s"];
        NSLog(@"%@", mStr);
        
  // 练习
        
        NSMutableString *mStr11 = [NSMutableString stringWithString:@"png54321.jpeg"];
        if ([mStr11 hasSuffix:@"png"]) {
            
//            NSRange range = [mStr11 rangeOfString:@"png"];
            [mStr11 replaceCharactersInRange:NSMakeRange(mStr11.length - 3, 3) withString:@"jpg"];
        }
        else{
            [mStr11 appendString:@".jpg"];
        }
        NSLog(@"%@", mStr11);
        
        
        
        
    }

0 0
原创粉丝点击