OC 第三天

老牛浏览 527评论 0发表于

主要内容:

  1. 成员变量的作用域

  2. 多态

  3. 构造方法

  4. 人开枪射击子弹

  5. 创建字符串对象

objectivec
//字符串整理:
//
//  main.m
//  01-创建字符串对象
//

#import <Foundation/Foundation.h>

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

    @autoreleasepool {
        /**
         理解字符串
         c当中的字符串 “goodforyou”
         oc?
         有一个字符串对象  NSString
         */
        //c的表示方法
        char * cStr = "goodforYou";
        //oc的字符串表示方法
        NSString *ocString = @"iOS开发";

        //研究oc的字符串
        /**
         分类:可变字符串和不可变字符串
         不可变字符串:对象指针的指向可以改变,对象的内容不能变。
         可变字符串:对象指针的指向可以改变,对象的内容也可以变。
         */

        //介绍不可变字符串
        //创建字符串
        //1.创建空字符串
        NSString *string1 = [[NSString alloc]init];
        //2.直接创建字符串
        NSString *string2 = @"good for you";
        NSLog(@"%@",string2);
        //3.通过对象方法创建
        //通过初始化另一个字符串
        NSString *string3 = [[NSString alloc]initWithString:string2];
        //通过初始化c的字符串
        //utf8是一种标准的编码方式
        NSString *string4 = [[NSString alloc]initWithUTF8String:"good bey"];
        NSLog(@"string4:%@",string4);

        //通过格式化方式创建
        //注意:后面的变量可以是任意数据类型
        NSString *string5 = [[NSString alloc]initWithFormat:@"todaytoday%@,%i",string2,4];
        NSLog(@"string5:%@",string5);

        //4.通过类方法
        NSString *string6 = [NSString stringWithString:string2];

        NSString *string7 = [NSString stringWithFormat:@"%i,%i",3,4];
        NSLog(@"%@",string7);
        //拼接
        //1.通过stringWithFormat:

        NSString *string8 = @"iOS";
        NSString *string9 = @"study";
        //重新生成一个字符串对象,原来的两个对象内容不改变
        NSString *string10 = [NSString stringWithFormat:@"%@%@",string9,string8];
        NSLog(@"string10:%@",string10);

        //2. 会将string8拼接到string9的后面
        NSString *string11 = [string9 stringByAppendingString:string8];

        NSLog(@"string10:%@",string11);

    }
    return 0;
}

其他用法:
//
//  main.m
//  02-字符串的其他方法汇总
//

#import <Foundation/Foundation.h>

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

    @autoreleasepool {
        NSString *string1 = @"good for you";
        NSString *string2 = @"good For you";
        //求长度
        unsigned long length = [string1 length];
        NSLog(@"length:%lu",length);
        //取其中的一个字符
        unichar *c = [string1 characterAtIndex:3];
        NSLog(@"%c",c);
        //比较两个字符串是否相同
        //注意:比较区分大小写
        //BOOL 是一种数据类型,它只有两个值YES和NO,如果你要打印,只能打印出1和0
        BOOL isSame = [string1 isEqualToString:string2];
        if (isSame) {
            NSLog(@"两个数相同");
        }else{
            NSLog(@"两个数不相同");
        }
        //比较两个字符串的大小
        //NSOrderedAscending = -1L(升序), NSOrderedSame(相等), NSOrderedDescending(降序)
        NSComparisonResult result = [string1 compare:string2];
        switch (result) {
            case NSOrderedAscending:
                NSLog(@"string1<string2");
                break;
            case NSOrderedSame:
                NSLog(@"string1==string2");
                break;
            case NSOrderedDescending:
                NSLog(@"string1>string2");
                break;
            default:
                break;
        }
        //不区分大小写的比较
        //NSCaseInsensitiveSearch代表不区分大小写
        NSComparisonResult result1 = [string1 compare:string2 options:NSCaseInsensitiveSearch];
        switch (result1) {
            case NSOrderedAscending:
                NSLog(@"string1<string2");
                break;
            case NSOrderedSame:
                NSLog(@"string1==string2");
                break;
            case NSOrderedDescending:
                NSLog(@"string1>string2");
                break;
            default:
                break;
        }
        //把小写大写相互转化
        //转成大写字母
        NSString *stringUp = [string2 uppercaseString];
        NSLog(@"stringUp:%@",stringUp);

        //转小写
        NSString *stringLo = [string2 lowercaseString];
        //字符串查找
        NSString *string6 = @"good for good OK eatApple";
        NSString *stirng7 = @"good";
        //分析:范围:(位置,长度)
        //确定方向  注意:默认是从左到右,只查找第一个子字符串
        //NSRange 是一个oc的结构体,表示范围的(location,length)
        //NSRect(位置) NSPoint(平面的坐标) NSSize(大小)
        NSRange range = [string6 rangeOfString:stirng7];

        //一种根据location
        //NSNotFound 说明没有找到位置信息
        if (range.location != NSNotFound) {
            NSLog(@"%i",range.location);
        }

        //一种根据length
        if (range.length != 0) {
             NSLog(@"%i",range.location);
        }
        //判断前后缀
        BOOL isPre = [string6 hasPrefix:@"g"];

        BOOL isSuf = [string6 hasSuffix:@"o"];
        //字符串转化为数字
        //注意:字符串必须是数字字符串
        NSString *string8 = @"4";
        int myInt = [string8 intValue];
        NSLog(@"%i",myInt);
        //字符串提取
        NSString *string10 = @"good for good OK eatApple";

        //1.从0开始到指定位置,不包括结束位置
        NSString *subString1 = [string10 substringToIndex:4];
        NSLog(@"subString1:%@",subString1);
        //2.从指定位置开始到结尾 包括起始位置
        NSString *subString2 = [string10 substringFromIndex:10];
        NSLog(@"subString2:%@",subString2);

        //3.根据范围取值
        //NSRange的赋值:1.{2,4} 2.NSMakeRange(3,6)
        NSString *subString3 = [string10 substringWithRange:NSMakeRange(4, 3)];
        NSLog(@"subString3:%@",subString3);
    }
    return 0;
}
点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛@ilaoniu
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于