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

你可能感兴趣的:(NSString,NSArray,NSMutableArray,NSMutableString,nsnumber)