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]);

原文地址:https://www.cnblogs.com/fzkwan5438020/p/5067382.html