Objective_C_04
15/12/9
// Objective_C_04
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
// 1.字符串
NSString *str1 = [[NSString alloc] initWithFormat:@"字符串:%d",1];
NSLog(@"%@",str1);
NSString *str2 = [NSString stringWithFormat:@"字符串:%d",2];
NSLog(@"%@",str2);
NSString *str3 = @"通过字面量的方式创建字符串";
// 相当于initWithString:方法
NSLog(@"%@",str3);
// 2.获取字符串的长度
NSUInteger length = [str1 length];
NSLog(@"%lu",length);
// 3.截取字符串
NSString *baseStr = @"原字符串";
NSString *subStr = [baseStr substringToIndex:2];
NSLog(@"%@",subStr);
NSString *subStr1 = [baseStr substringFromIndex:1];
NSLog(@"%@",subStr1);
// 创建NSRange结构体变量的时候,尽量使用NSMakeRange()
NSString *subStr2 = [baseStr substringWithRange:NSMakeRange(1, 2)];
NSLog(@"%@",subStr2);
// 4.判断字符串的前缀和后缀
NSString *phone = @"15210538263";
// 前缀
BOOL b = [phone hasPrefix:@"152"];
NSLog(@"%d",b);
// 后缀
BOOL b1 = [phone hasSuffix:@"268"];
NSLog(@"%d",b1);
// 5.字符串拼接
NSString *fileName = @"goldOne";
NSString *newFileName = [fileName stringByAppendingFormat:@".avi"];
NSLog(@"%@",newFileName);
// 6.字符串替换
NSString *imgName = @"goldOne.png";
NSString *newImgName = [imgName stringByReplacingCharactersInRange:NSMakeRange(8, 3) withString:@"jpg"];
NSLog(@"%@",newImgName);
// 7.字符串的比较
NSString *s1 = @"abc";
NSString *s2 = @"acd";
if ([s1 compare:s2] == NSOrderedAscending) {
NSLog(@"s1 < s2");
}else if ([s1 compare:s2] == NSOrderedSame){
NSLog(@"s1 == s2");
}else{
NSLog(@"s1 > s2");
}
// 8.字符串和数值类型转换
NSString *intStr = @"123";
NSInteger i = [intStr integerValue];
NSLog(@"%ld",i);
int a = 123;
NSString *a1 = [NSString stringWithFormat:@"%d",a];
NSLog(@"%@",a1);
// 9.大小写转换
NSString *string = @"my naMe Is songKang";
NSLog(@"原字符串:%@",string);
NSLog(@"全大写字符串:%@",[string uppercaseString]);
NSLog(@"全小写字符串:%@",[string lowercaseString]);
NSLog(@"首字母大写字符串:%@",[string capitalizedString]);
// NSMutableString
// 1.创建可变字符串
NSMutableString *mutablestr1 = [[NSMutableString alloc] initWithCapacity:10];
NSMutableString *mutablestr2 = [NSMutableString string];
// 字面量的方式只可以创建不可变的对象
// NSMutableString *mutablestr3 = @"asdfasd";
// NSLog(@"%@",*mutablestr3);
// 2.拼接字符串
[mutablestr1 appendString:@"可变字符串"];
NSLog(@"%@",mutablestr1);
[mutablestr2 appendString:@"可变字符串"];
NSLog(@"%@",mutablestr2);
// 3.插入字符串
[mutablestr1 insertString:@"(插入的内存)" atIndex:3];
NSLog(@"%@",mutablestr1);
// 4.删除字符串
[mutablestr1 deleteCharactersInRange:NSMakeRange(3, 7)];
NSLog(@"%@",mutablestr1);
/*
1.可变字符串拥有不可变字符串的所有方法
2.不可变字符串将结果通过返回值传递出去,而可变字符串直接修改自身
3.可变字符串的方法名更为直接
4.不可变字符串效率更高
5.能用不可变的就用不可变
*/
#pragma mark-----NSArray不可变数组
// 数组:NSArray
// 分为两种:可变数组NSMutableArray 不可变数组NSArray
// NSArray是OC将数组中常用的操作打包整理成一个类
// 注意:数组里面存放的必须是对象
// 1.创建不可变数组
NSArray *ar = [[NSArray alloc] initWithObjects:@"yuuos",@"iosajio",@"sidof",nil];
NSLog(@"%@",ar);
NSArray *as = [NSArray arrayWithObjects:@"sidof",@"ukhiiu",@"uiyutuy",nil];
NSLog(@"%@",as);
// 使用字面量方式创建数组,不需要在后面添加nil
NSArray *a3 = @[@"a",@"b"];
NSLog(@"%@",a3);
// 2.获取数组元素个数
NSLog(@"%ld",[ar count]);
// 3.根据索引值获取对象
NSString *s11 = [ar objectAtIndex:1];
NSLog(@"%@",s11);
// 4.根据对象获取所在的索引值
NSUInteger s12 = [ar indexOfObject:@"sidof"];
NSLog(@"indexOfObject:%lu",s12);
#pragma mark-----NSMutableArray可变数组-----
// 1.创建可变数组
NSMutableArray *a0 = [[NSMutableArray alloc]initWithObjects: nil];
NSLog(@"初始个数:%lu",[a0 count]);
// 2.分别添加自己的名和同桌的名
[a0 addObjectsFromArray:@[@"hecheng",@"fantasy",@""]];
[a0 addObject:@"changchao"];//直接在数组后面添加
NSLog(@"添加后的个数:%@",a0);
NSLog(@"添加后的个数:%lu",[a0 count]);
for (int i = 0; i < 4; i++) {
NSLog(@"%@",a0[i]);//空的不打印
}
// 快速遍历(for(跟集合里面的对象类型一样 in 从哪个集合里面取值))
for (NSString *str in a0) {
if ([str isEqualToString:@"fantasy"]) {
NSLog(@"相同");
NSLog(@"%@",str);
}
}
// 3.插入一个姓名放到数组最前面
[a0 insertObject:@"yagchao" atIndex:0];
NSLog(@"%@",a0);
// 4.将最后一个人的名字替换成大写
NSString *s = [[a0 lastObject]uppercaseString];
NSLog(@"%@",s);
NSLog(@"%@",a0);
a0[[a0 count] -1] = s;
NSLog(@"%@",a0);
[a0 replaceObjectAtIndex:[a0 count]-1 withObject:s];
NSLog(@"%@",a0);
// 5.交换第一个和最后一个的名字
[a0 exchangeObjectAtIndex:0 withObjectAtIndex:[a0 count]-1];
NSLog(@"%@",a0);
// 6.删除下标为2的元素
[a0 removeObjectAtIndex:2];
NSLog(@"%@",a0);
// 7.删除所有
[a0 removeAllObjects];
NSLog(@"%@",a0);
// 将下列内容,添加到数组中
// 12 34.7 67.2 ‘d’ YES
NSRange range1 = NSMakeRange(1, 4);
NSRange range2 = NSMakeRange(3, 8);
NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:@(12)];
[array addObject:@34.7];
[array addObject:@67.2];
[array addObject:@'d'];
[array addObject:@YES];
NSValue *a10 = [NSValue valueWithRange:range1];
NSValue *b11 = [NSValue valueWithRange:range2];
[array addObject:a10];
[array addObject:b11];
NSLog(@"%@",array);
// NSValue 值对象
// 结构体(NSRange等)、指针等转换为NSValue
NSRange range11 = NSMakeRange(2, 4);
NSValue *value = [NSValue valueWithRange:range11];
NSLog(@"%@",value);
NSLog(@"%lu %lu",[value rangeValue].location,[value rangeValue].length);
// NSNumber 数值对象
// 基本类型(int,float等)转换为NSNumber
NSNumber *num = [NSNumber numberWithInt:3];
NSNumber *num1 = [NSNumber numberWithFloat:3.14];
NSLog(@"%@",num);
NSLog(@"%@",num1);
// NSNumber转换为基本类型(int,float等)
int a112 = [num intValue];
NSLog(@"%d",a112);
// NSString
// NSMutableString
// NSArray
// NSMutableArray
// NSRange
// NSValue
// NSNumber
return 0;
}

浙公网安备 33010602011771号