1.【理解】NSMutableString基本概念
NSMutableString是可变字符串,是NSString的子类。
2.【理解】字符串中的可变和不可变
NSMutableString和NSString的区别
NSString是不可变的,里面的文字内容是不能进行修改的。
NSMutableString是可变的,里面的文字内容可以随时更改。
NSMutableString能使用NSString的所有方法
字符串操作
void test()
{
// str = [str
stringByReplacingOccurrencesOfString:@"a" withString:@"A"];
// str = [str
uppercaseString];
// str = [str
lowercaseString];
// str = [str
capitalizedString];
//
NSLog(@"%@",str);
}
//比较是否字符串相同
void test2()
{
// BOOL b = [str
isEqualToString:str1];
//
//
NSLog(@"%d",b);
}
//比较两个字符串的大小
void test3()
{
//
NSComparisonResult cc = [str compare:str1];
//
NSLog(@"%l",cc);
}
//前后缀检查
void test4()
{
// NSString *preStr
= @"zhu";
// NSString *sufStr
= @"lei";
//
// BOOL b = [str
hasPrefix:preStr];
// BOOL c = [str
hasSuffix:sufStr];
// if(c)
// {
//
NSLog(@"对喽");
// }
// else
// {
//
NSLog(@"错啦");
// }
}
//查找字符串
void test5()
{
// NSString *ranStr
= @"ngl";
// NSRange range =
[str rangeOfString:ranStr];
// if(range.location
!= NSNotFound)
// {
//
NSLog(@"有啊有啊");
// }
}
//截取字符串
void test6()
{
NSString *str1,*str2;
str1 = [str
substringFromIndex:3];
str2 = [str
substringToIndex:4];
NSLog(@"%@",str1);
NSLog(@"%@",str2);
}
NSMutableString
NSMutableString是可变字符串,是NSString的子类。
NSMutableString和NSString的区别
NSString是不可变的,里面的文字内容是不能进行修改的。
NSMutableString是可变的,里面的文字内容可以随时更改。
NSMutableString能使用NSString的所有方法
NSMutableString操作
[muStr appendString:@"www"];
//拼接一段格式字符串
[muStr appendFormat:@"---%@---",@"嘿嘿嘿" ];
//删除range范围的字符串
NSRange range = {6,4};
[muStr deleteCharactersInRange:range];
//在loc这个位置中插入aString
[muStr insertString:@"1314" atIndex:6];
NSLog(@"%@",muStr);
NSArray
NSArray是OC中的数组类,使用起来更灵活,开发中建议尽量使用NSArray替代C语言中的数组.
【理解】NSArray常见的创建方式:
+ (instancetype)array;
+ (instancetype)arrayWithObject:(
id)anObject;
+ (instancetype)arrayWithObjects:(
id)firstObj, ...;
+ (instancetype)arrayWithArray:(
NSArray*)array;
+ (
id)arrayWithContentsOfFile:(NSString*)path;
+ (
id)arrayWithContentsOfURL:(NSURL*)url;
// 可以将一个NSArray保存到文件中
- (
BOOL)writeToFile:(NSString*)path
atomically:(BOOL)useAuxiliaryFile;
- (
BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;
【理解】NSArray的使用注意事项
1>只能存放任意OC对象,并且是有顺序的。
2>不能存储非OC对象,比如int\float\double\char\enum\struct等。
3> 它是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的, 不能删除里面的元素, 也不能再往里面添加元素.
数组的操作
//数组的创建与访问
NSArray *a = @[@"Jack",@"Rose",@"Jim"];
NSLog(@"%@",a[1]);
//获取集合元素个数
NSLog(@"%lu",a.count);
//获取第三个
NSLog(@"%@",[a objectAtIndex:2]);
//是否包含某一个元素
BOOL b = [a containsObject:@"Jim"];
if(b)
{
NSLog(@"包含");
}
else
{
NSLog(@"不包含");
}
//返回最后一个元素,第一个元素
NSLog(@"%@",[a lastObject]);
NSLog(@"%@",[a firstObject]);
//查找某个元素在数组中的位置
unsigned long c = [a indexOfObject:@"Rose"] + 1;
NSLog(@"%lu",c);
//
NSLog(@"%@",a[1]);
// //获取集合元素个数
//
NSLog(@"%lu",a.count);
// //获取第三个
//
NSLog(@"%@",[a objectAtIndex:2]);
// //是否包含某一个元素
// BOOL b = [a
containsObject:@"Jim"];
// if(b)
// {
//
NSLog(@"包含");
// }
// else
// {
//
NSLog(@"不包含");
// }
// //返回最后一个元素,第一个元素
//
NSLog(@"%@",[a lastObject]);
//
NSLog(@"%@",[a firstObject]);
// //查找某个元素在数组中的位置
// unsigned long c =
[a indexOfObject:@"Rose"] + 1;
//
NSLog(@"%lu",c);
//NSArray数据写入到文件中
BOOL res = [a writeToFile:@"/Users/badaniao/Desktop/qqq.txt" atomically:YES];
//从文件中读取数据到NSArray
NSArray *b = [NSArray
arrayWithContentsOfFile:@"/Users/badaniao/Desktop/qqq.txt"];
NSLog(@"%@",b);
//将数组元素链接成字符串
NSString *c = [b componentsJoinedByString:@"-"];
NSLog(@"%@",c);
//字符串分割成一个数组的方法
NSArray *d = [c componentsSeparatedByString:@"--"];
NSLog(@"%@",d);
【理解】NSArray给所有元素发消息
让集合里面的所有元素都执行aSelector这个方法
- (void)makeObjectsPerformSelector:(SEL)aSelector;
- (
void)makeObjectsPerformSelector:(SEL)aSelector
withObject:(id)argument;
NSDictionary
1、什么是NSDictionary?
NSDictionary翻译过来叫做”字典”
日常生活中,
“字典”的作用:通过一个拼音或者汉字,就能找到对应的详细解释。
2、NSDictionary的作用:
类似通过一个key,就能找到对应的value。
NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改。
3、NSDictionary的创建
+ (instancetype)dictionary;
+ (instancetype)dictionaryWithObject:(
id)object
forKey:(id)key;
+ (instancetype)dictionaryWithObjectsAndKeys:(
id)firstObject,...;
+ (
id)dictionaryWithContentsOfFile:(NSString*)path;
+ (
id)dictionaryWithContentsOfURL:(NSURL *)url;
4、NSDictionary的常见使用
返回字典的键值对数目
- (NSUInteger)count;
根据key取出value
- (id)objectForKey:(id)aKey;
5、NSDictionary的遍历
1> 快速遍历
for
(NSString *key in dict) { }
2> block遍历
[dict
enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { }];
NSDictionary操作
//NSDictionary的创建与获取元素
NSDictionary *dic = @{@"name":@"Jack",@"sex":@"男"};
NSLog(@"%@",dic[@"name"]);
//NSDictionary的文件操作
BOOL b = [dic writeToFile:@"/Users/badaniao/Desktop/qqq.txt" atomically:YES];
// URL:- (BOOL)writeToURL:(NSURL *)url
atomically:(BOOL)atomically;
NSMutableDictionary
1、NSMutableDictionary介绍
什么是NSMutableDictionary ?
NSMutableDictionary是NSDictionary的子类
NSDictionary是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,
不能删除里面的元素, 也不能再往里面添加元素
NSMutableDictionary是可变的,随时可以往里面添加\更改\删除元素.
2、NSMutableDictionary的常用方法
添加一个键值对(会把aKey之前对应的值给替换掉)
- (void)setObject:(id)anObject forKey:(id )aKey;
通过aKey删除对应的value
- (void)removeObjectForKey:(id)aKey;
删除所有的键值对
- (void)removeAllObjects;
3、NSMutableDictionary的简写
设置键值对
以前
[dict
setObject:@"Jack" forKey:@"name”];
现在
dict[@"name"]
= @"Jack";