OC (四)

来源:互联网 发布:巨人网络 刘伟 编辑:程序博客网 时间:2024/04/30 01:04
使用苹果帮助文档NSString 和 NSMutableStringNSArray和 NSSMutableArrayNSNumber


//1.不可见字符串对象的创建, 以及常用方法的使用    
//将一个常量字符串封装成字符串对象    
NSString *str1 = [[NSString alloc] initWithString:@"www.baidu.com"];    
NSString *str2 = [NSString stringWithString:@"www.baidu.com"];    
//通过格式控制符创建字符串对象,更加的灵活可以将其他数据类型转成字符串对象    
NSString *str3 = [[NSString alloc] initWithFormat:@"%d",123];    
NSString *str4 = [NSString stringWithFormat:@"%d",123];   
 //字符串对象的打印输出,对应的格式控制符依然为%@   NSLog(@"%@,%@,%@,%@",str1,str2,str3,str4);   
 //可以将c语言中的字符串转成oc中的字符串对象   
 NSString *str5 =[[NSString alloc] initWithCString:"C String" encoding:NSUTF8StringEncoding];    
char  str[] ="C String";   
 NSString *str6 = [NSString stringWithCString:"C String" encoding:NSUTF8StringEncoding];    
//求字符串对象的长度方法(实例方法,只能由字符串对象调用)   
 NSInteger length = [str6 length];    
NSLog(@"length =%ld",length);   
 //判断一个字符串对象是否有前缀或者后缀字符串    
BOOL result1 = [str1 hasPrefix:@"http://"];   NSLog(@"%@",result1?@"YES":@"NO");  
  BOOL  result2 = [str1 hasSuffix:@".com"];   NSLog(@"%@",result2?@"YES":@"NO");   
 //字符串对象的拼接方法, 不可变字符串对象因其本身不能被修改的特性,所以拼接字符串的方法会创建一个新的字符串对象作为拼接后的结果字符串,并不会对原有字符串做修改。    
NSString *finalString = [@"http://" stringByAppendingString:str1];   
 NSLog(@"拼接后的字符串finalStr %@,str1 = %@",finalString,str1);
// 搜索字符串baidu在http://www. baidu.com字符串中的范围   
 NSRange range = [finalString rangeOfString:@"baidu”];
 //NSStringFromRange函数可以将NSRange类型的结构体变量转换成字符串对象,方便输出打印。   
 NSLog(@"range = %@",NSStringFromRange(range));
 // 截取子字符串(按照指定的范围截取   
NSString *substring = [finalString substringWithRange:range];    
NSLog(@"substring =%@",substring);
NSRange range1 = NSMakeRange(10, 7);   
 NSString *substr =[finalString substringWithRange:range1];   NSLog(@"substr=%@",substr);
 //按照下标截取子字符串    
//适合截取 前缀字符串同时index是指到该下标为止,不包含该下标对应的字符。   
 NSString *substr1 = [finalString substringToIndex:7];   NSLog(@"substring = %@",substr1);    
 // 适合截取后缀字符串,index是指从该下标开始截取。包含该下标对应的字符   NSString *substr2 = [finalString substringFromIndex:17];   NSLog(@"substring = %@",substr2);
//替换字符串操作
 //通过新的字符串来替换已有的字符串 来得到最终的字符串对象作为返回值返回。    NSString *newString = [finalString stringByReplacingOccurrencesOfString:@".com" withString:@".org"];    
NSLog(@"newstring = %@",newString);


 NSString *firstStr = [NSString stringWithFormat:@"%d",123];    NSString *secondStr = [NSString stringWithFormat:@"%d",123];    
//字符串比较方法的使用   
 BOOL  result = [firstStr isEqualToString:secondStr];   NSLog(@"result = %@",result?@"YES":@"NO”);

compare:方法比较两个字符串

    NSComparisonResult result1 = [firstStr compare:secondStr];    
NSLog(@"%ld",result1);    //将字符串转换成数值类型   
 int num1 = [firstStr intValue];    
int num2 = [secondStr intValue];   
 NSLog(@"sum = %d",num1+num2);   
//大小写转换    
NSString *textStr = [NSString stringWithFormat:@"%@",@"hellolanou 3g,duke"];    
//转换成大写字符串    NSString *upperCaseStr = [textStr uppercaseString];    
NSLog(@"大写字符串= %@",upperCaseStr);
 NSString *lowerCaseStr = [upperCaseStr lowercaseString];   NSLog(@"小写字符串= %@",lowerCaseStr);    NSString *captialString = [upperCaseStr capitalizedString];   NSLog(@"首字母大写= %@",captialString);


NSMutableString
可变字符串类
NSString  类的子类,该类创建的字符串是一个动态可变的字符串,可以支持增删改查等动态的操作。


 NSMutableString可变字符串类

 NSMutableString *mutableStr  = [NSMutableString string];   //通过setString:方法为已经创建的可变字符串对象设置新的内容   [mutableStr setString:@"www.google.com"];   NSLog(@"%@",mutableStr);   
 NSMutableString *mutableStr1 = [NSMutableString stringWithFormat:@"123%@",@"xxx"];   NSLog(@"%@",mutableStr1);    
[mutableStr1 setString:@"xxx123"];    
NSLog(@"%@",mutableStr1);
NSMutableString 是NSString的子类,继承得到的所有方法。
不可变字符串的修改操作,本质就是得到一个新的字符串。
不可变字符串的修改方法以String开头,有返回值。
可变字符串的修改方法没有返回值。修改原字符串。


数组对象
数组对象的特点:
元素是有序的,索引之从0开始。
数组中存储的元素必须是对象。类型任意。
NSArray  *array = [[NSArray alloc] initWithObjects:@"heihei",@"hehe",@"haha",@"houhou", nil];//可变参数列表,nil表示结束的标志。    //这两个创建数组对象的方法,参数列表之所以以nil结尾,是因为这两个方法的参数个数是可以根据需求发生改变的,为了保证方法内部可以争取判断参数的结束,所以在末尾加了nil   
 NSArray *array1 = [NSArray arrayWithObjects:@"哈哈",@"呵呵",@"嘿嘿",@"吼吼" ,nil];       
 NSLog(@"array = %@",array);   
 NSLog(@"array1 = %@",array1);
输出结果:
2014-07-22 20:48:13.077 Lesson04(OC)[2392:303] array = (    heihei,    hehe,    haha,    houhou ) 2014-07-22 20:48:13.079 Lesson04(OC)[2392:303] array1 = (   "\U54c8\U54c8",    "\U5475\U5475",    "\U563f\U563f",    "\U543c\U543c" )
崩溃::数组越界
beyond bounds 数组越界
beyond  compare 无与伦比
 NSString *str3 = [array objectAtIndex:3];   NSLog(@"%@",str3);    
//查找对应对象在数组中的下标。如果没有找到,那么返回一个超级大的随机数。   NSInteger index = [array indexOfObject:@"嘿嘿"];   NSLog(@"index = %ld",index);    
// 求数组元素的个数    NSInteger count = [array count];   NSLog(@"count = %ld",count);    
NSArray *newArray = [array1 arrayByAddingObject:@"xxx"];   NSLog(@"%@",newArray);    
NSMutableArray * mutableArray = [NSMutableArray array];    
// 添加方法   
 [mutableArray addObject:@"xxxxxfa"];    
//添加一个数组对象    
[mutableArray addObjectsFromArray:array1];   NSLog(@"mutableArray = %@",mutableArray);   
 [mutableArray setArray:array1];//覆盖掉原来的。    NSLog(@"mutableArray = %@",mutableArray);    
[mutableArray removeObjectAtIndex:2];   
 NSLog(@"mutableArray = %@",mutableArray);    
//清空可变数组中保存的对象。 
//    [mutableArray removeAllObjects]; 
//    NSLog(@"mutableArray = %@",mutableArray);  
 // 替换数组中指定下标的对象    [mutableArray replaceObjectAtIndex:1 withObject:@"lala"];   NSLog(@"mutableArray = %@",mutableArray);    
//交换两个指定下标的两个对象的位置   
 [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2];    NSLog(@"mutableArray = %@",mutableArray);   
 [mutableArray insertObject:@"xxx" atIndex:1];   NSLog(@"mutableArray = %@",mutableArray);


数值对象

用于将基本数据类型封装成为对象。

常用方法

将基本数据类型封装为数据对象。
将数据对象转换成基本数据类型。
0 0
原创粉丝点击