IOS基础之NSString,NSMutableString,NSArray的基本使用

//
//  main.m
//  Day10-Foundation框架
//
//  Created by 鲁军 on 2021/4/25.
//
/**NSString *str2 = [NSString new];创建对象的在常量区 堆区在内存中创建的1个字符串对象以后,这个字符串对象的内容就无法更改当我们重新为字符串指针初始化值的时候当我们 重新为字符串指针初始化值的时候,并不是修改原来的字符串对象而是重新的创建1个字符串对象,将这个字符串对象的地址重新赋值*/#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {NSString *str1 = @"jack";NSString *str2 = [NSString new];NSLog(@"\nstr1 = %p\nstr2 = %p",str1,str2);/**str1 = 0x100004010str2 = 0x7fff80377728*/NSLog(@"test");NSString *str = @"jack";str = @"rose";NSLog(@"%@",str);return 0;
}
//
//  main.m
//  05-字符串的常用成员
//
//  Created by 鲁军 on 2021/5/7.
//
/**substringFromIndex从指定的下标出一直截取到最后substringToIndex 从第0个开始截取指定的个数substringWithRange 截取指定的一段范围3.字符串的替换stringByReplacingOccurrencesOfString:@"北京天安门" withString:@"广州小蛮腰"];将字符串中第一个参数替换为第2个参数,友情提示,原来的指针指向的字符串的内容是不会变的,会全部替换新串是以方法的返回值返回的这个方法还可以做删除 原理就是将其替换成@""3.字符串数据转换成其他类型转换注意从头开始转换,能转换多少,就转换多少,到遇到不能转换的时候就停止转换了如果不能转换就为04.去掉字符串的前后面的空格stringByTrimmingCharactersInSet 去掉字符串的前后的空格,中间的空格无法去掉5). 去掉字符串的前后的小写字母NSString *str = @"beiAjingwoainiAbAei";str = [str stringByTrimmingCharactersInSet:[NSCharacterSet lowercaseLetterCharacterSet]];NSLog(@"%@",str);//AjingwoainiAbA6). 去掉字符串的前后大写字母NSString *str = @"ABCSASbeiAjingwoainiAbAeiEEEESSWSS";str = [str stringByTrimmingCharactersInSet:[NSCharacterSet uppercaseLetterCharacterSet]];NSLog(@"%@",str);//beiAjingwoainiAbAei7). 去掉头尾指定的字符串NSString *str = @"jingABCC jing CbeiAdasdasdqwdWWESDSDWDWQDjing";str = [str stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"jing"]];NSLog(@"%@",str);//ABCC jing CbeiAdasdasdqwdWWESDSDWDWQD*/
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {NSString *str = @"jingABCC jing CbeiAdasdasdqwdWWESDSDWDWQDjing";str = [str stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"jing"]];NSLog(@"%@",str);//ABCC jing CbeiAdasdasdqwdWWESDSDWDWQD//    NSString *str = @"ABCSASbeiAjingwoainiAbAeiEEEESSWSS";
//    str = [str stringByTrimmingCharactersInSet:[NSCharacterSet uppercaseLetterCharacterSet]];
//    NSLog(@"%@",str);//beiAjingwoainiAbAei//    NSString *str = @"beiAjingwoainiAbAei";
//    str = [str stringByTrimmingCharactersInSet:[NSCharacterSet lowercaseLetterCharacterSet]];
//    NSLog(@"%@",str);//AjingwoainiAbA//    NSString *str = @"i love itcast ";
//    str = [str uppercaseString];
//    NSLog(@"%@",str);/*NSString *str = @" dniqw12314234sdas  ";NSLog(@"%@",str);str = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];NSLog(@"%@",str);*//* NSString *str = @"110aaaaa";int num = str.intValue;NSLog(@"%d",num);//110*//* NSString *str = @"12";int num = str.intValue;double num1 = str.doubleValue;float num2 = str.floatValue;NSLog(@"%d",num +1);NSLog(@"%lf",num1 + 21.1);*//*NSString *str = @"中国\n我爱你\n啊真的\n爱\n你啊!";str = [str stringByReplacingOccurrencesOfString:@"\n" withString:@""];NSLog(@"%@",str);*//*NSString *email = @"wxw@itcast.cn";email = [email stringByReplacingOccurrencesOfString:@"@" withString:@"#"];NSLog(@"%@",email);*//*  NSString *str = @"我爱北京天安门北京";//字符串的恒定性str =  [str stringByReplacingOccurrencesOfString:@"北京" withString:@"广州小蛮腰"];NSLog(@"%@",str);*//*NSString *str = @"我爱北京天安门";NSString *newStr = [str substringFromIndex:3];NSLog(@"%@",newStr); //京天安门NSString *newStr2 = [str substringToIndex:3];NSLog(@"%@",newStr2); //我爱北NSString *newStr3 = [str substringWithRange:NSMakeRange(2, 3)];NSLog(@"%@",newStr3);//北京天*/return 0;
}
//
//  main.m
//  06-NSMutableString
//
//  Created by 鲁军 on 2021/5/7.
//
/**字符串的恒定性一旦创建1个字符串的对象,那么这个字符串对象的内容是无法更改的,当我们修改的字符串的时候,其实是重新的创建了1个字符串的对象NSLog(@"---------------");NSString *str = @"";for(int i=0;i<50000;i++){str = [NSString stringWithFormat:@"%@%d",str,i];}NSLog(@"---------------");会耗费很长的时间。 每次循环的时候,都会创建1个新的字符串的对象,50000个因为字符串的恒定性。2. 如果让大批量的字符串拼接可以更加快速的创建1) 慢的原因, 因为字符串的恒定性,每次修改字符串的时候,是重新的创建1个对象2) 希望, 有没有1中对象是用来存储字符串的,并且存储在这个对象的字符串的数据可以更改的3. NSMutableString1) 是NSFoundation 的类 从NSSTring 继承的所以,NSMutableString 在父类NSString的基础上做的扩展存储在NSMutableString 对象中的字符串数据是可以更改的,具备可变性直接可以改存储在NSMutableString 对象的字符串的数据,不会创建新的对象4) NSMutableString  的用法1) 创建[str appendFormat:@"我今年%d岁了",age];2)  往可变的字符串的对象中添加字符串[str appendString:@"jack"];[str appendFormat:@"我今年%d岁了",age];3). 创建的NSMutaleString 对象的时候,  记住下面的这样的初始化的方式是不对的NSMutableString *str = @"jack";@"jack"  是1个 NSString 对象, 1个父类对象而str 指针是1个NSMutableString 类型的 是1个子类类型的如果通过子类的指针去调用子类独有的成员,就会运行错误4) NSMutableString 从NSString 继承在使用NSString 的地方完全可以使用 NSMutableString 去替换的5. 使用NSMutableString 来做大批量的字符串拼接这个时候 biu 的一下就结束了,为什么这么快 因为 NSMutable String对象只有1个,每次修改的时候,直接修改的是这个对象的中的数据NSLog(@"------------------");NSMutableString *str =  [NSMutableString string];for(int i=0;i<50000;i++){[str appendFormat:@"%d",i];}NSLog(@"------------------");6. 平时的使用 使用的是 NSString  因为效率高2) NSMutableString 只在大批量的字符串的拼接的时候才使用,大量拼接的时候,就不要使用NSString 因为效率低5次以上相当于 C#的StringBuilder 和java 的StringBuilder*/
#import <Foundation/Foundation.h>
#import "Person.h"int main(int argc, const char * argv[]) {NSLog(@"------------------");NSMutableString *str =  [NSMutableString string];for(int i=0;i<50000;i++){[str appendFormat:@"%d",i];}NSLog(@"------------------");//    Person *p1 = [Person new];
//
//    NSString *str2 = @"红烧肉";
//    NSMutableString *str3 = [NSMutableString string];
//
//    [str3 appendString:@"冰淇淋"];
//    [p1 eat:str3];
//
//
//    NSMutableString *str= [NSMutableString string];
//    [str appendString:@"jack"];
//    [str appendString:@"rose"];
//    [str appendString:@"lili"];
//    int age = 21;
//    [str appendFormat:@"我今年%d岁了",age];
//
//
//    NSLog(@"%@",str);//    NSLog(@"---------------");
//    NSString *str = @"";
//
//    for(int i=0;i<50000;i++){//        str = [NSString stringWithFormat:@"%@%d",str,i];
//
//    }
//
//    NSLog(@"---------------");return 0;
}
//
//  Person.m
//  06-NSMutableString
//
//  Created by 鲁军 on 2021/5/7.
//#import "Person.h"@implementation Person- (void)eat:(NSString *)foodName{NSLog(@"给我的%@真好吃",foodName);
}@end
//
//  main.m
//  07-NSArray
//
//  Created by 鲁军 on 2021/5/7.
///**1.回忆 C语言的数组特点a。  存储多个数据b。 类型相同c。长度固定d。每1个元素都是紧密相连的2.NSArray 是Foundation 的一个类所以NSArray 是OC的数组2) 特点只能存储OC对象,无法存储非OC对象整型等任意的OC对象b 长度固定, 一旦NSArray 数组的创建完毕之后,元素的长度固定,无法新增,无法删除元素c 每1个元素都是紧密相连的,每1个元素仍然有自己的下标。3. NSArray 的创建NSArray *arr1 = [NSArray new];NSArray *array = [[NSArray alloc] init];NSArray *arr3 = [NSArray array];这样创建数组是没有意义的 ,数组长度是02)  NSArray *arr = [NSArray arrayWithObject:@"jack"];NSLog(@"%@",arr);这样也是没有意义的,就添加一个数组长度了使用注意:1) 只能存储OC对象,不能存储非OC对象2) 将元素写完以后,最后要写1个nil,表示元素到此结束了。//简要的写法NSArray *arr = @[@"jack",@"rose",@"lili",@"hanMeiMei"];不需要加nil,否则会报错。NSArray 的使用nil本质是05. 取出 存储在NSArray的值arr[0]  //下标取出值调用对象方法NSString *str = [arr objectAtIndex:1];NSLog(@"%@",str);1) 得到数组的长度arr.count2) 判断NSArray数组中是否包含指定的元素3) 取到NSArray的第一个元素arr.firstObject;与arr[0]的区别当数组为空,arr[0] 直接报错,arr.firstObject输出nillastObject最后一个值4) 取到NSArray数组中的最后1个元素lastObject5) 查找指定的元素第一次出现的下标NSArray *arr = @[@"jack",@"rose",@"lili",@"hanMeiMei"];
NSUInteger index =  [arr indexOfObject:@"rose"];NSLog(@"%lu",index);//1如果没有找到,返回的是NSUInteger 的最大值*/#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {NSArray *arr = @[@"jack",@"rose",@"lili",@"hanMeiMei"];NSUInteger index =  [arr indexOfObject:@"rose"];if(index==NSNotFound){NSLog(@"没有找到");}NSLog(@"%lu",index);//1BOOL res =  [arr containsObject:@"jacks"];NSLog(@"%d",res); //没有 就是0 ,有就是1NSLog(@"arr.count = %lu",arr.count);NSString *str = [arr objectAtIndex:1];NSLog(@"%@",str);//    NSArray *arr1 = [NSArray new];
//    NSArray *array = [[NSArray alloc] init];
//    NSArray *arr3 = [NSArray array];//    NSArray *arr = [NSArray arrayWithObject:@"jack"];
//    NSLog(@"%@",arr);
//    NSArray * arr = [NSArray arrayWithObjects:@"jack",@"rose",@"hanMeimei",@"LiLei", nil];
//    NSLog(@"%@",arr);
////    Person *p1 = [Person new];
//    Person *p2 = [Person new];
//    Person *p3 = [Person new];
//    Person *p4 = [Person new];
//    Person *p5 = [Person new];
//    Person *p6 = [Person new];
//    Person *p7 = [Person new];
//    NSArray *arr = [NSArray arrayWithObjects:p1,p2,p3,p4,p5,p6,p7, nil];//简要的写法
//    NSArray *arr = @[@"jack",@"rose",@"lili",@"hanMeiMei"];
//
//    NSArray *arr1 = @[p1,p2,p3,p4,p5,p6,p7];
//    NSLog(@"%@",arr1);
//
//    NSLog(@"%@",arr);return 0;
}
//
//  Person.m
//  07-NSArray
//
//  Created by 鲁军 on 2021/5/7.
//#import "Person.h"@implementation Person@end

IOS基础之NSString,NSMutableString,NSArray的基本使用相关推荐

  1. 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary

    NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...

  2. IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例

    IOS基础之Foundation框架常用类NSFileManager,DSDate,CGPoint,CGSize,copy,单例 1.01_FileManager学习 // // main.m // ...

  3. # iOS基础 # iOS面试题一

    如果你不知道你接下来需要补充学习哪一部分知识,做点面试题吧. 基础部分 1.线程和进程有什么区别 进程是一个程序执行的实例,是资源分配的最小单位线程是进程中的一个实例,是操作系统可以识别的最小执行和调 ...

  4. IOS基础之使用UICollectionView纯代码创建

    IOS基础之使用UICollectionView纯代码创建 资料来自2016-5-12某站. 有一定的参考意义, 涉及plist 转字典模型,UICollectionView使用纯代码加载到View里 ...

  5. IOS基础之计算器的编写

    IOS基础之计算器的编写 // // ViewController.m // Fraction_Calculator // // Created by 鲁军 on 2021/4/26. //#impo ...

  6. IOS基础之NSFounation框架的NSDictionary,NSMutableDictionary的使用

    IOS基础之NSFounation框架的NSDictionary,NSMutableDictionary的使用 // // main.m // Day11-NSFoudation框架 // // Cr ...

  7. IOS基础之仿酷狗音乐第1天

    IOS基础之仿酷狗音乐第1天 细节较多,涉及字典转模型,tableView 的使用,模态框,自定义模态,音视频播放,全局PCH文件,xib加载,自定义 xib ,info.plist文件的加载,动画的 ...

  8. iOS基础——通过案例学知识之UITableView

    iOS基础--通过案例学知识之UITableView 案例一:英雄联盟展示 对于UITableView的知识点特别多,因为它是iOS用得最多控件之一,我会尽我最大努力和语言的组织,将所有知识点介绍到位 ...

  9. 从小白到大牛需要的iOS 基础这里都有,需要的过来看看!

    1.字符串常用方法 字符串截取 NSString *strSub = [str substringFormIndex:2]; NSString *strSubT = [str substringToI ...

最新文章

  1. 产品需求管理经验分享
  2. 电信天翼3G上网卡在Lenovo笔记本电脑windows7系统正常运行方法
  3. Java知多少(43)异常处理基础
  4. 没想到这家老牌AI公司越来越不“纯粹”了
  5. 数据挖掘导论读书笔记1
  6. android问题总结报告,Android开发中常见的问题总结
  7. 剑指offer--在O(1)时间内删除链表结点
  8. php基本函数对象,PHP常用函数对象_PHP教程
  9. SQLServerAgent 当前未运行,因此无法将此操作通知它。
  10. 蓝桥杯 ALGO-115 算法训练 和为T Java版
  11. MacOS 迅速上手 Makefile 编译 C / C++ 工程
  12. 基于Java科研成果管理系统_基于Java的高校科研管理系统的设计与实现(含源文件).doc...
  13. 一张图片放两个二维码_经验 | 图片排版的「17个实用技巧」
  14. 《SEM长尾搜索营销策略解密》一一2.14 3M的奇思妙想,原来来自长尾
  15. 如何自动发送生日提醒和祝福
  16. 基于堆栈的缓冲区溢出_基于堆栈溢出问题构建搜索引擎
  17. 关于重装系统前的准备、备份和重装完后系统优化、使用习惯等说明
  18. 天平游码读数例题_使用天平游码时的读数方法-word
  19. [luogu] P1637 三元上升子序列 树状数组
  20. Java并发(四)BlockingQueue的使用

热门文章

  1. 计算机使用技巧爆文,关于小红书爆文的10个小技巧
  2. java项目 配置文件_细数Java项目中用过的配置文件(properties篇)
  3. 打开 谷歌浏览器exe_python使用selenium调用谷歌浏览器打开指定网页
  4. 抽象类可以创建对象吗_【基础篇】java-抽象类与继承的补充
  5. win10安装程序无法将配置为在此计算机,win10安装程序无法正常启动(完美解决)
  6. c语言计算机二级改错题类型,C语言计算机二级改错题
  7. 白光干涉衍射实验的计算机仿真,白光干涉_衍射实验的计算机仿真_蓝海江.pdf
  8. 为什么你学C++这么难?
  9. 从1985年到2020年,编程语言排行有哪些变化?
  10. python异常处理的作用_python之路——异常处理