Object-C字符串,数组,NSNumber

一、 学习查看类的基本信息

1. 继承自谁

2. 遵循什么协议

3. 属于什么框架

4. 从iOS哪个版本开始支持

二、 字符串类

1. NSString:不可变字符串

对象创建赋值以后,内容和长度不能动态更改

2. NSMutableString:可变字符串

该类创建的字符串是一个动态的可变的字符串,可以支持增删改查等动态的操作

3. 联系

1) NSMutableString是NSString的子类,继承的到所有方法

2) 不可变字符串的修改操作,本质就是得到一个新的字符串

3) 不可变字符串的修改方法以string开头,有返回值

4) 可变字符串的修改方法没有返回值,修改原字符串

三、 字符串常用方法

1. 创建一个字符创常量

2. 快速创建一个字符串

3. 创建一个格式化的字符串

4. 字符串的比较

5. 字符串的转换

6. 字符串的截取与拼接

NSMutableString方法

7. 增

8. 删

9. 改

10.查

四、NSNumber,数值对象

用于将基本数据类型封装为对象

三、数组类

1. 特点

1)容器类,管理一组对象类型的数据

2)数组中元素是有序的,索引值从0开始

3) 数组中存储的元素必须是对象,类型任意

2. 分为可变数组与不可变数组

四、数组常用方法

1. 数组对象的创建

2. 获取数组中的元素个数以及访问数组元素

3. 追加数组中的内容

4. 数组转字符串

5. 判断数组中是否存在一个指定的对象

6. 根据指定的对象返回索引下标、返回数组中最后一个元素

不可变数组

7. 新增

8. 插入

9. 删除最后一个元素

10. 删除指定的元素

11. 删除指定位置的元素

12. 批量删除

13. 替换元素

------------------NSString(不可变字符串)----------------

///////// 创建一个字符创常量

        NSString *string1 = @"you need cry,dear";

        NSLog(@"string1:%@\n",string1);

        //创建一个空的字符串

        NSString *string2 = [[NSString alloc]init];

        NSString *string3 = [NSString string];

        NSLog(@"string2:%@",string2);

       NSLog(@"string3:%@",string3);

///////////快速创建一个字符串 常量区(NSString)

        NSString *string4 = [[NSString alloc] initWithString:@"有你的快递,dear"];

        NSString *string5 = [NSString stringWithString:@"有你的快递,dear"];

        NSLog(@"string4 : %@", string4);

        NSLog(@"string5 : %@", string5);


////////////////  创建一个格式化的字符串 堆区

        NSString *string6 = [[NSString alloc]initWithFormat:@"整数:%d",88];

        NSString *string7 = [[NSString alloc]initWithFormat:@"浮点数:%f",88.8];

        NSLog(@"string6 : %@", string6);

        NSLog(@"string7 : %@", string7);


///////////////////// 字符串的比较

//比较内容是否相等

        NSString *string8 = [NSString stringWithFormat:@"you need cry,dear"];

        NSString *string9 = [NSString stringWithFormat:@"有你的快递,dear"];


        if ([string8 isEqualToString:string9]) {

            NSLog(@"相同的内容");

        }else{

            NSLog(@"不同的内容");

        }

//比较字符串是否为一个对象,也就是说在比较这两个字符串是否在同一块内存地址内。

       NSString *string10 = [[NSString alloc]initWithFormat:@"b"];

        NSString *string11 = [[NSString alloc]initWithFormat:@"b"];

        if (string10 == string11) {

           NSLog(@"这两个字符串是同一个对象,也就是说这两个字符串两个在同一块内存内");

        }else{

            NSLog(@"这两个字符串不是同一个对象,也就是说这两个字符串不在同一块内存内");

       }

//比较字符串的大小

string10小于string11,result=-1,

string10等于string11,result=0,

string10大于string11,result=1

        NSComparisonResult result = [string10 caseInsensitiveCompare:string11];


        NSLog(@"result : %ld\n",result);


        //求字符串的长度

        NSLog(@"字符串11的长度=%ld",[string11 length]);

/////////////////////// 字符串的转换

       NSString *string12 = @"HELLOW world";

        //将字母全部转为大写

        NSLog(@"upper : %@\n",[string12 uppercaseString]);

        //将字母全部转为小写

        NSLog(@"lower : %@\n",[string12 lowercaseString]);

       //每个单词首字母转化为大写,其余字母转换为小写)

        NSLog(@"capital : %@\n",[string12 capitalizedString]);

       //转化为基本数据类型

        NSString *string13 = @"3.1";

        float pi = [string13 floatValue];

       NSLog(@"pi : %0.2f\n",pi);

       //字符串转换成数组

        NSString *string14 = @"wasd qwer";

        NSArray *array = [string14 componentsSeparatedByString:@" "];

        NSLog(@"array : %@",array);

//////////////////// 字符串的截取与拼接

// 截取字符串

        NSString *string15 = @"wasdqwer";


        NSString *subString1 = [string15 substringFromIndex:4];//从第三个索引开始(包括第三个索引对应的字符)截取到最后一位

/      NSLog(@"subString1 : %@",subString1);


        NSString *subString2 = [string15 substringToIndex:4];//从0开始截取到第三个索引(不包括第三个索引对应的字符)

       NSLog(@"subString2 : %@",subString2);

        NSRange range = {0,4};

        NSString *subString3 = [string15 substringWithRange:range];

        NSLog(@"subString3 : %@",subString3);

        //字符串的拼接

        NSString *string16 = @"abc";

        NSString *string17 = @"xyz";


        NSString *appString1 = [[NSString alloc]initWithFormat:@"%@%@",string16,string17];


        NSString *appString2 = [string16 stringByAppendingFormat:@"%@",string17];


                NSString *appString3 = [string16 stringByAppendingString:string17];



        NSLog(@"appString1 : %@",appString1);

        NSLog(@"appString2 : %@",appString2);

        NSLog(@"appString3 : %@",appString3);

        //查找字符串

        NSString *link = @"abcdeftarget=_blankxyz";

        NSRange range1 = [link rangeOfString:@"target=_blank"];


       if (range1.location != NSNotFound) {

            NSLog(@"发现我要找的字符串");

        }

------------NSMutableString(可变字符串)------------

//PS: 之前对NSString(不可变字符串)做的所有操作咱们都是对整个字符串做的处理,无法对单个字符串进行增删改查的操作。现在咱们使用NSMutableString(可变字符串)进行增删改查

///////////////////// 增

NSMutableString *multableString1 = [[NSMutableString alloc]initWithString:@"abc"];

//插入一个字符串

[multableString1 insertString:@"...xyz" atIndex:3];

[multableString1 appendString:@"你好"];

NSLog(@"mutableString1 = %@",multableString1 );

/////////////////// 删

//删除字符串

[multableString1 deleteCharactersInRange:NSMakeRange(0, 3)];

NSLog(@"mutableString1 = %@",multableString1 );

///////////////////// 改

//修改字符串中的某一部分

[multableString1 replaceCharactersInRange:NSMakeRange(0,3) withString:@"❤️"];

NSLog(@"mutableString1 = %@",multableString1 );

//////////////////// 查

//查找某一个字符串

NSRange rangeOfheart =    [multableString1 rangeOfString:@"❤️"];

if (rangeOfheart.location != NSNotFound) {

NSLog(@"找到你的心了");

}

//在C语言阶段咱们定义一个字符串变量的格式如下:

char *cString; // char是字符的数据类型,cString是变量名,*是指针,在这里他起到的作用是,代表cString是一个字符串变量

//在OC阶段定义一个字符串变量的格式是一样的

NSString *ocString; //然而此时NSString在OC中不再叫做数据类型,而是叫做类,ocString也不再叫做变量名而是叫做对象。*此时还是指针,代表声明的这个对象是是NSString类型。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容