OC学习 -- NSString NSMutableString NSArray NSMutableArray NSNumber(详解)
#pragma mark – NSString
1: initWithString 直接赋值常量字符串对象
例如: NSString =*str = @”yangyang”;
2:stringWithstring 相当于直接赋值
例如:NSString *str =@”yyy”;
3:initWithFormat : 通过传入的格式化字符串进行字符串对象的创建
例如: NSString *str= [[NSString alloc]initWithFirmat:@”普通字符串 %@ %@f %D”,@”aaa”,2.0,6];
NSLog(@”%@”,str3);
4: stringWithFormat : 内部封装了alloc 以及initWithFormat:的操作
通过便利构造器创建的字符串
NSString *str4 = [NSStringstringWithFormat:@"通过便利构造器创建的字符串"];
NSLog(@"%@",str4);
5:initWithUTF8String: 将C语言的字符串 转化为OC字符串对象
NSString *str5 = [[NSStringalloc]initWithUTF8String:"我是一个C语言字符串,不加@,我很厉害"];
NSLog(@"%@",str5);
NSString *str6 = [NSStringstringWithUTF8String:"通过便利构造器方法将语言字符串转化为OC字符串对象"];
NSLog(@"%@",str6);
6
NSString *str =[NSString stringWithFormat:@"http://www.lanou3g.com"];
6.1 字符串的替换 指的是将所有的符合条件的字符串 都进行替换
NSString *replaceStr = strstringByReplacingOccurrencesOfString:@"w"withString:@"haiyan"];
NSLog(@"%@",replaceStr);
6.2 字符串的拼接 在字符串的后面拼接新的字符串
NSString *appendStr = [strstringByAppendingFormat:@"QQ"];
NSLog(@"%@",appendStr);
6.3: 测字符串的长度
NSUInteger length = [str length];
NSLog(@"length = %lu",length);
6.4: 大小写替换 只需要调用系统封装好的方法就行
// upper全部转换成大写
NSString *upperStr =[str uppercaseString];
NSLog(@"%@",upperStr);
//全部转成小写
NSString *lowerStr =[upperStr lowercaseString];
NSLog(@"%@",lowerStr);
//每个单词的首字母大写
NSString *capital = [strcapitalizedString];
NSLog(@"%@",capital);
6.5 判断开头和结尾 一般用于判断字符串格式
用BOOL类型进行接收 若是判断相同 则返回1 不同则返0
BOOL isPerfix = [strhasPrefix:@"htt"];
NSLog(@"%d",isPerfix);
BOOL isSufFix = [strhasSuffix:@".com"];
NSLog(@"%d",isSufFix);
6.6 截取
//substringFromIndex 从给定位置开始截取的字符串结尾
NSString *subStr1 = [strsubstringFromIndex:3];
NSLog(@"%@",subStr1);
//substringToIndex: 从开头截取到自定位置(不包括当前位置)
NSString *subStr2 = [strsubstringToIndex:3];
NSLog(@"%@",subStr2);
//substringWithRange: 通过给定的范围进行字符串的截取
//系统给我们提供了 快速创建结构体的方式 NSMake + 结构体名
(例如 NSRange NSMakeRang(1,10);)
NSString *subStr3 = [strsubstringWithRange:NSMakeRange(3, 8)];
NSLog(@"subStr3 =%@",subStr3);
6.7:判断两个字符串是否相等
NSString *str2 =[NSString stringWithFormat:@"ab"];
NSString *str3 =[NSString stringWithFormat:@"ba"];
// isEqualToString : 若是每个对应的字符串都相等则返回1 不相等则返回0
BOOL isEqual = [str2 isEqualToString:str3];
NSLog(@"%d",isEqual);
// compare也是比较是否相等 只比较对应字符串的ASCII玛的差值 相等返回0 不相等返回-1
NSInteger result = [str2compare:str3];
NSLog(@"result =%ld",result);
#pragma mark -NSMutableString
可变字符串 可变字符串 是NSString的子类 增添了NSString可变的功能
可变的字符串不能调用父类的方法实现
//创建一个可变的字符串
NSMutableString *yang =[[NSMutableString alloc]initWithFormat:@"yang love na"];
1: 拼接 appendFormat: 在字符串的后面进行拼接
[yang appendFormat:@" family"];
2:插入 insertString: 在任意位置插入
[yanginsertString:@" and" atIndex:12];
3:删除 deleteCharactersInRange : 删除任意一段范围
[yang deleteCharactersInRange:NSMakeRange(10,7)];
4:替换 replaceCharactersInRange: 替换任意一段范围
[yang replaceCharactersInRange:NSMakeRange(10,6)withString:@"QQQQQ"];
5: 更改 setString:对整个字符串进行更改
[yangsetString:@"yang and nana life happy forever"]
#pragma mark – NSArray
首先定义三个字符串
NSString *Nokia =@"Nokia";
NSString *apple =@"Apple";
NSString*mi=@"MI";
//initWithObjects : 在初始化时候一次性存储多个对象 对象和对象之间用逗号隔开 以nil结尾
//nil之后的对象不在存储
NSArray *array =[[NSArray alloc]initWithObjects:Nokia,apple,mi,nil];
NSLog(@"%@",array);
//获得数组元素个数
NSInteger count = [arraycount];
NSLog(@"%ld",count);
//访问数组元素
// objectAtIndex: 访问数组的固定位置元素 也可以像C一样进行访问
NSString *what = [array objectAtIndex:1];
NSLog(@"%@%@",what,array[1]);
//通过对象找到索引值
//indexOfObject: 只是找到第一个满足条件的对象下标
NSInteger index= [array indexOfObject:Nokia];
NSLog(@"%ld",index);
//遍历
for (int i=0;i<array.count; i++) {
NSLog(@" %@",[array objectAtIndex:i]);
}
// sortedArrayUsingSelector:内部实现的就是冒泡排序 在OC里面直接调用这个方法就可以实现排序
NSArray *sortedArr =[array sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",sortedArr);
#pragma mark -NSMutableArray -- 可变的数组
NSMutableArray *muArr =[[NSMutableArray alloc]initWithObjects:Yi,Er,San,Si,Wu, nil];
//直接输出
NSLog(@"%@",muArr);
// 添加 addObject: 在后面进行添加
[muArr addObject:Liu];
//插入 insertObject:在任意位置插入
[muArr insertObject:Qi atIndex:0];
//交换位置 exchangeObjectAtIndex:任意两个位置进行交换
[muArr exchangeObjectAtIndex:2 withObjectAtIndex:3];
//删除
[muArr removeObject:Qi]; //将所有符合的对象全部移除
[muArr removeObjectAtIndex:0]; //删除固定位置的元素
[muArr removeAllObjects]; //删除所有
NSNumber- - 数字对象
来源:虽然有int和float这些基本数字变量,但终究不是对象,所以不能接受消息(就是被调用),所以需要数字对象
是一个类族 用来装基础类型的对象,把整型、单精度、双精度、字符型等基础类型存储为对象
NSNumber * intNumber =[[NSNumber alloc] initWithInt:5];
NSNumber * floatNumber =[[NSNumber alloc] initWithFloat:3.14f];
NSNumber * doubleNumber= [[NSNumber alloc] initWithDouble:6.7];
NSNumber * charNumber =[[NSNumber alloc] initWithChar:'A'];
NSNumber *intNumber2 = [NSNumber numberWithInt:6];
//判断两个NSNumber 是否相等 BOOL类型 相等返回1 不相等返回0
// 可以跨不同对象,比如:比较intNumber和floatNumber
BOOL ret = [intNumberisEqualToNumber:intNumber2];
//比较两个整型的NSNumber的大小
if ([intNumbercompare:intNumber2] == NSOrderedAscending) {
NSLog(@"<");
}else if([intNumber compare:intNumber2] ==NSOrderedSame){
NSLog(@"=");
}else if([intNumber compare:intNumber2] == NSOrderedDescending){
NSLog(@">");
}
//通过以下方法可以还原这些基本数据类型的数据
NSLog(@"%d",[intNumber intValue]);
NSLog(@"%f",[floatNumber floatValue]);
NSLog(@"%f", [doubleNumberdoubleValue]);
NSLog(@"%c",[charNumber charValue]);