iOS 字符串、数组、字典基本操作
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// NSNumber
//创建初始化
NSNumber *number1 = [NSNumber numberWithInt:100];
NSNumber *number2 = [[NSNumber alloc] initWithFloat:100.00];
NSLog(@"number1===%@, number2===%@", number1, number2);
//还原为基本数据类型
int numberInt = [number1 intValue];
float numberFloat = [number2 floatValue];
NSLog(@"numberInt===%d, numberFloat===%f", numberInt, numberFloat);
NSLog(@"numberString1====%@, numberString2====%@", [number1 stringValue], [number2 stringValue]);
//NSString
//创建一个字符串常量
NSString *string = @"abc";
//创建空字符串
NSString *emptyString = [NSString string];
NSString *emptyString2 = [[NSString alloc] init];
NSLog(@"string==%@, emptyString==%@, emptyString2==%@", string, emptyString, emptyString2);
//快速创建一个字符串
NSString *aString = [[NSString alloc] initWithFormat:@"快速创建一个字符串"];
NSString *aString2 = [NSString stringWithFormat:@"快速创建一个字符串"];
NSLog(@"aString==%@, aString2==%@", aString, aString2);
//快速创建一个格式化字符串
NSString *string2 = [NSString stringWithFormat:@"%d.png", 100];
NSString *string3 = [[NSString alloc] initWithFormat:@"%d.png", 100];
//判断两个字符串内容是否一样
BOOL isEqual = [string2 isEqualToString:string3];
NSLog(@"内容是否一样===%d", isEqual);
//判断两个字符串对象是否一样
BOOL isSame = [string2 isEqual:string3];
NSLog(@"是否为一个对象===%d", isSame);
//比较字符串的大小
NSLog(@"比较大小===%ld", [string2 caseInsensitiveCompare:string3]);
//比较字符串的长度
NSLog(@"字符串长度:%lu", (unsigned long)[string3 length]);
//改变字符串的大小写
NSString *string4 = @"I am A deveLoper";
NSLog(@"字母全部大写———%@,字母全部小写———%@, 单词首字母大写——————%@", [string4 uppercaseString], [string4 lowercaseString], [string4 capitalizedString]);
//字符串转化为基本数据类型
NSString *string5 = @"2.76540";
NSLog(@"%d", [string5 boolValue]);
NSLog(@"%d", [string5 intValue]);
NSLog(@"%f", [string5 floatValue]);
NSLog(@"%f", [string5 doubleValue]);
NSLog(@"%lld", [string5 longLongValue]);
//将字符串转化为数组 用指定字符串将字符串分割为多个元素 返回一个数组
NSArray *stringArray = [string4 componentsSeparatedByString:@" "];
NSLog(@"字符串分割后的数组===%@", stringArray);
//用指定的字符串将数组中的元素连接起来 返回一个字符串
NSString *arrayString = [stringArray componentsJoinedByString:@"#"];
NSLog(@"数组合并后的字符串===%@", arrayString);
//从索引为4的字符开始截取至末尾(包含索引为4的字符)
NSString *subString = [string4 substringFromIndex:4];
//从头截取至索引为4的字符(不包含索引为4的字符)
NSString *subString1 = [string4 substringToIndex:4];
//根据范围来截取 截取从索引为3的字符开始(包含3) 长度为4的一个字符串
NSRange range;
range.location = 3;
range.length = 4;
NSString *rangeSubString = [string4 substringWithRange:range];
NSString * temp =[string4 substringWithRange:NSMakeRange(2, 4)];
NSLog(@"subString==%@, subString1==%@, rangeSubString==%@,temp====%@!", subString, subString1, rangeSubString,temp);
//拼接字符串
NSString *formatString = [NSString stringWithFormat:@"%@%@", subString1, subString];
//返回一个新字符串对象
NSString *appendString = [subString1 stringByAppendingString:subString];
NSLog(@"formatString====%@, appendString====%@", formatString, appendString);
//查询字符串 [A rangeOfString:B]
NSRange range1 = [appendString rangeOfString:subString1];
if (range1.location == NSNotFound)
{
NSLog(@"====%@", NSStringFromRange([subString1 rangeOfString:appendString]));
}
else
{
NSLog(@"字符串A 包含 字符串B");
}
// NSMutableString 继承于 NSString
NSMutableString *mutableString = [NSMutableString stringWithString:@"字符串"];
//插入
[mutableString insertString:@"可变" atIndex:0];
NSLog(@"mutableStirng====%@", mutableString);
//替换
NSRange range2;
range2.location = 0;
range2.length = 4;
[mutableString replaceCharactersInRange:range2 withString:@"羊肉"];
NSLog(@"mutableStirng====%@", mutableString);
//删除
range2.location = 1;
range2.length = 1;
[mutableString deleteCharactersInRange:range2];
NSLog(@"mutableStirng====%@", mutableString);
// NSArray 不可变数组
NSArray *array = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", @"d", @"e", nil];
NSLog(@"array=====%@", array);
//不可变数组调用方法添加一个对象 返回一个新数组
NSArray *addObjectArray = [array arrayByAddingObject:@"f"];
NSLog(@"addObjectArray=====%@", addObjectArray);
//数组中是否包含某对象
if ([addObjectArray containsObject:@"f"])
{
NSLog(@"数组中包含元素‘f’");
}
//查询指定对象在数组中的索引 如果没有此元素 返回NSNotFound
NSInteger index = [addObjectArray indexOfObject:@"f"];
NSInteger index1 = [addObjectArray indexOfObject:@"z"];
NSLog(@"index====%d, index1====%d", index, index1);
//获取数组中最后一个元素
[addObjectArray lastObject];
//获取数组中第一个元素
[addObjectArray firstObject];
//NSMutableArray继承NSArray
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithCapacity:10];
[mutableArray addObject:@"1"];
NSLog(@"mutableArray=addObject==%@", mutableArray);
[mutableArray addObjectsFromArray:addObjectArray];
NSLog(@"mutableArray=addObjectsFromArray==%@", mutableArray);
[mutableArray insertObject:@"1" atIndex:0];
NSLog(@"mutableArray=insertObject==%@", mutableArray);
[mutableArray removeLastObject];
NSLog(@"mutableArray=removeLastObject==%@", mutableArray);
[mutableArray removeObject:@"1"];
NSLog(@"mutableArray=removeObject==%@", mutableArray);
[mutableArray removeObjectAtIndex:0];
NSLog(@"mutableArray=removeObjectAtIndex==%@", mutableArray);
//遍历
//
for (int i=0; i<mutableArray.count; i++)
{
NSLog(@"遍历1=====%@", [mutableArray objectAtIndex:i]);
}
//快速枚举 ps:性能高
for (NSString *string in mutableArray)
{
NSLog(@"遍历2=====%@", string);
}
for (id string in mutableArray)
{
NSLog(@"遍历3=====%@", string);
}
/*
字典的基本概念 NSDictionary NSMutableDictionary
字典(NSDictionary,NSMutableDictionary)是由键—值对组成的数据集合。正如我们在词典里查找单词一样。通过Key(键),查找对应Value(值),Key通常是字符串对象,也可以是其他任意类型对象(前提是该对象实现了NSCopying协议)。在一个字典对象中,
Key的值必须是唯一的;Value可以是任意类型的对象。此外,字典对象的键和值不可以为空(nil),如果需要在一个字典对象中表示空值,可以使用NSNull对象。
数组
value (@"2", @"2", @"1")
index 0 1 2
字典
value (@"2", @"2", @"1")
key @"0" @"1" @"2"
Key:Value, Key:Value
*/
//NSDictionary初始化
//初始化一个元素
NSDictionary *dictionary = [NSDictionary dictionaryWithObject:@"张三" forKey:@"zhangsan"];
//初始化两个元素
NSDictionary *dictionary2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"11", @"1", @"22", @"2", nil];
//根据一个字典进行初始化
NSDictionary *dictionary3 = [[NSDictionary alloc] initWithDictionary:dictionary2];
//以文件内容初始化字典
NSString *path = @"/../.../1.plist";
NSDictionary *dictionary4 = [[NSDictionary alloc] initWithContentsOfFile:path];
NSLog(@"____%@", dictionary4);
/*
字典常用方法
*/
//获取字典键值对数量
int count = [dictionary count];
NSLog(@"count_____%d", count);
//通过Key获取对应的Value对象
NSString *zhangsan = [dictionary objectForKey:@"zhangsan"];
NSLog(@"zhangsan_____%@", zhangsan);
//获取所有键的集合
NSArray *allKeys = [dictionary3 allKeys];
NSLog(@"keys____%@", allKeys);
//获取所有值的集合
NSArray *allValues = [dictionary3 allValues];
NSLog(@"values____%@", allValues);
//可变字典 NSMutableDictionary继承于NSDictionary
//初始化一个空字典
NSMutableDictionary *mDictionary = [NSMutableDictionary dictionary];
//向一个字典中添加另外一个字典对象
[mDictionary addEntriesFromDictionary:dictionary2];
NSLog(@"添加字典对象mDictionary___%@", mDictionary);
//向一个字典中新添加键值对
[mDictionary setObject:@"33" forKey:@"3"];
[mDictionary setObject:@"44" forKey:@"4"];
[mDictionary setObject:@"55" forKey:@"5"];
[mDictionary setObject:@"66" forKey:@"6"];
[mDictionary setObject:@"77" forKey:@"7"];
NSLog(@"添加键值对mDictionary___%@", mDictionary);
//将字典中一个Key对应的值删除
[mDictionary removeObjectForKey:@"3"];
NSLog(@"删除一个Key对应的值mDictionary___%@", mDictionary);
//根据指定的数组(Keys)移除一个字典中的内容
NSArray *keys = [NSArray arrayWithObjects:@"1", @"2", nil];
[mDictionary removeObjectsForKeys:keys];
NSLog(@"指定的数组(Keys)移除mDictionary___%@", mDictionary);
//移除字典所有对象
// [mDictionary removeAllObjects];
NSLog(@"移除字典所有对象mDictionary___%@", mDictionary);
/*
遍历字典 三种
*/
//快速遍历
for (id key in mDictionary)
{
id object = [mDictionary objectForKey:key];
NSLog(@"快速遍历____%@", object);
}
//普通遍历
for (int i=0; i<mDictionary.count; i++)
{
id key = [[mDictionary allKeys] objectAtIndex:i];
id object = [mDictionary objectForKey:key];
id object2 = [[mDictionary allValues] objectAtIndex:i];
NSLog(@"普通遍历_______%@___%@", object, object2);
}
//枚举类型枚举遍历
NSEnumerator *enumerator = [mDictionary keyEnumerator];
id key = [enumerator nextObject];
while (key)
{
id object = [mDictionary objectForKey:key];
NSLog(@"通过枚举类型枚举____%@", object);
key = [enumerator nextObject];
}
//NSSet 集合
NSSet *set = [NSSet setWithObjects:@"1", @"2", @"3", nil];
//集合对象个数
[set count];
//以数组形式返回集合所有对象
NSArray *allObjects = [set allObjects];
NSLog(@"allObjects====%@", allObjects);
//返回集合中任意一个对象
[set anyObject];
//集合中是否包含一个对象 返回BOOL
[set containsObject:@"2"];
//两个集合中是否存在有相同元素的对象 返回BOOL intersetsSet
NSSet *set1 = [NSSet setWithObjects:@"1", @"2", nil];
[set intersectsSet:set1];
NSLog(@"两个集合中是否存在有相同元素的对象=%d", [set intersectsSet:set1]);
//两个集合中的元素是否完全匹配 返回BOOL isEqualToSet
NSLog(@"两个集合中的元素是否完全匹配=%d", [set isEqualToSet:set1]);
//某集合是否是另一集合的子集 返回BOOL
NSLog(@"set1是否是set的子集=%d", [set1 isSubsetOfSet:set]);
//NSMutableSet
NSMutableSet *mutableSet = [NSMutableSet setWithObjects:@"1", @"2", @"3", @"4", nil];
//一个集合减去另一个集合的元素
[mutableSet minusSet:set1];
NSLog(@"mutableSets=minusSet===%@", mutableSet);
//集合A与集合B的交集 intersectSet
[mutableSet intersectsSet:set1];
NSLog(@"mutableSets=intersectsSet===%d", [mutableSet intersectsSet:set1]);
//集合A与集合B的并集 unionSet
[mutableSet unionSet:set1];
NSLog(@"mutableSets=unionSet===%@", mutableSet
);
//将空集合A设置为集合B的内容
NSMutableSet *emptySet = [NSMutableSet set];
[emptySet setSet:mutableSet];
// [emptySet removeAllObjects];
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: iOS 字符串中是否包含某个字符串
- 下一篇: Dubbo实现原理浅析