一、面向对象的三大特征
1⃣️、OC是一门面向对象的语言,面向对象的三大特征: 封装. 继承. 多态.
1.封装 : 把具体的对象 抽象化 把相同类型的对象抽象成一个类
封装的好处:a.可以提升代码的复用性(重复使用性)
b.变量的安全性
c.提高代码的可读性
2.继承 :子类拥有父类的全部属性和方法
子类:就是继承的类
父类丶超级类:就是被继承的类
子类独有的 父类不能使用 子类 可以扩展 父类的 方法和属性 同时也可以添加变量
拓展:OC里面有没有多继承? 没有 但是可以多级继承
3.多态 : 一个事物的多样性 一个事物 同一个方法表现出不同的状态
如果父类拥有的方法 子类不希望使用那种方式 可以重写这个方法
二、字符串的处理
1⃣️、字符串 可变字符串
NSString *string = [[NSString alloc]init];
NSString *string1 = [NSString string];
NSString *string2 = [[NSString alloc]initWithString:string1];
NSString *string3 = @"...";
// 给字符串赋值
string = @“11111";
2⃣️、字符串的处理
1.字符串的 格式化处理(格式化字符串)
int age = 20;
NSString *name = @"陈真";
NSString *info = [NSString stringWithFormat:@"%@今年%d",name,age]; 这个也成为字符串的拼接 stringWithFormat
NSLog(@"%@",info);
2.截取 字符串
// a.从哪个位置 开始截取字符串
// index 不是下标,所以不是从0开始
NSString *newString = [info substringFromIndex:2];
NSLog(@"%@",newString);
NSString *message = @"锄禾日当午,汗滴禾下土,。。。";
NSString *newMessage = [message substringFromIndex:12 ];
NSLog(@"%@",newMessage);
// b.截取字符串到哪个位置
NSString *newMessage1 = [message substringToIndex:12];
NSLog(@"%@",newMessage1);
// NSLog(@"%@",[message substringToIndex:12]);
NSLog(@"%@",[message substringToIndex:5]);
// c.从哪儿到哪儿
// (1)
NSLog(@"%@",[message substringWithRange:NSMakeRange(6, 5)]);
// (2)
NSRange range;
// 定义range结构体的位置
range.location = 6;
// 在这个位置的基础之上 继续数几个长度
range.length = 5;
NSLog(@"%@",[message substringWithRange:range]);
3、把字符串 通过指定字符 分割成数组
NSArray *messageList = [message componentsSeparatedByString:@","];
for (NSString *obj in messageList ) {
NSLog(@"%@",obj);
}
NSString *result = @"武松打虎duang!duang!duang! 老虎跑下山 ya~ya~ya~";
NSArray *result1 = [result componentsSeparatedByString:@" "];
NSLog(@"%@",result1[1]);
把所有的英文字母 转成大写,小写,或者首字母大写
NSString *str = @"bRuce";
NSLog(@“%@",str.uppercaseString);
NSLog(@“%@",str.lowercaseString);
NSLog(@“%@",str.capitalizedString);
拼接字符串
1.stringWithFormat
NSString *ss = @"杨鹏飞是";
NSString *ss2 = @"煞笔吗";
NSString *all = [ss stringByAppendingString:ss2];
NSLog(@"%@",all);
NSString *all1 = [ss stringByAppendingFormat:@"%@不止一天两天了",ss2];
NSLog(@“%@",all1);
.判断字符串 是否包含某个字符串
NSString *sss = @"上山打老虎跑了";
NSRange range119 = [sss rangeOfString:@"老虎"];
// range119.location != NSNotFound
if (range119.location != NSNotFound) {
NSLog(@"%@",sss);
}else{
NSLog(@"骗人~~~~");
}
字符串 以什么开始(字符串的头部包含什么内容
if ([sss hasPrefix:@"上山"]!= NO) {
NSLog(@"存在");
}else{
NSLog(@"error!");
}
字符串 以什么结束(字符串的尾部包含什么内容)
if ([sss hasSuffix:@"跑了" ]!= NO) {
NSLog(@"存在");
}else{
NSLog(@"error!");
}
4、可变字符串
NSMutableString *name11 = [[NSMutableString alloc]initWithString:@"bruce"];
NSRange range110;
range110.location = 1;
range110.length = 4;
// 把指定位置的字符串 替换成另一个字符串
[name11 replaceCharactersInRange:range110 withString:@"luce"];
NSLog(@"%@",name11);
NSMutableString *ssss = [NSMutableString stringWithString:@"我是一名程序员"];
[ssss replaceCharactersInRange:NSMakeRange(4,3) withString:@"医生"];
NSLog(@"%@",ssss);
NSRange rrr;
rrr.location = 4;
rrr.length = 3;
[ssss replaceCharactersInRange:rrr withString:@"医生"];
NSLog(@“%@",ssss);
// 删除指定位置长度的字符串
NSRange rrr1;
rrr1.location = 0;
rrr1.length = 4;
[ssss deleteCharactersInRange:rrr1];
NSLog(@"%@",ssss);