您的位置:首页 > 其它

OC学习之道:OC对象,字符串和数组的使用方法NSString,NSMutableString ,NSArray,NSMutableArray

2015-04-06 19:01 916 查看
OC学习之道:OC对象,字符串和数组的使用方法NSString,NSMutableString ,NSArray,NSMutableArray

int main(int argc, const char * argv[])
{

@autoreleasepool {

#pragma mark---NSString字符串的使用
//1.创建字符串
//1.1通过常量字符串的方式创建对象

NSString *string1 = @"liuyifei";
NSLog(@"%@",string1);
//1.2根据给定的格式创建字符串
NSString *string2 = [[NSString alloc]initWithFormat:@"%@",@"liuyifei" ];
NSLog(@"%@",string2);

NSString *string3 = [[NSString alloc]initWithFormat:@"%@ %d",@"tongxing",18];
NSLog(@"%@",string3);

//1.3便利构造器创建NSString
NSString *string5 = [NSString stringWithFormat:@"%@,%d",@"tongxing",20];
NSLog(@"%@",string5);

//2.获取字符串的长度

NSUInteger length1 =  [string2 length];
NSLog(@"%lu",length1);

//3.判断字符串是否以指定字符串结束
BOOL flag1 = [string2 hasSuffix:@"ei"];
NSLog(@"%d",flag1);
//4.判断字符串是否以指定的字符串开始
BOOL flag2 = [string2 hasPrefix:@"liu"];
NSLog(@"%d",flag2);

//5.查找某一个字符串在另一个字符串中得范围
NSString *str1= @"我很爱刘亦菲";
NSString *str2= @"很爱";
NSRange  range = [str1 rangeOfString:str2];
NSLog(@"%lu,%lu",range.location,range.length);

//6.字符串截取
NSRange range1 =  NSMakeRange(1, 3);
NSString *str3=[str1 substringWithRange:range1 ];
NSLog(@"%@",str3);

//7.从第一个字符开始,获取到指定的位置,,从第几个字符开始一直获取到最后一个字符.
NSString *str4 = [str1 substringToIndex:3];//下标为3的那个位置上的字符不包括
NSLog(@"%@",str4);
NSString *str5= [str1 substringFromIndex:3];//包括下标为3 的那个位置上得字符
NSLog(@"%@",str5);

//8.字符串拼接
NSString *str6 = [str1 stringByAppendingString:@"和周冬雨"];
NSLog(@"%@",str6);

//9.字符串替换
NSString *str7 = [str1 stringByReplacingOccurrencesOfString:@"刘亦菲" withString:@"周冬雨"];//用后面的来替换前面的
NSLog(@"%@",str7);

//10.字符串比较,比较的是字母按字典排序进行,前者大于后者返回1,相等返回0,否者返回-1
NSString *str8 =@"dingding";
NSString *str9 = @"dingxing";
NSComparisonResult result = [str8 compare:str9];
NSLog(@"%ld",result);

//11.把字符串转换为int,float,double等等
NSString * intStr = @"123";
int value = [intStr intValue];
NSLog(@"%d",value);
//把数字转化为字符串
NSString *string4 = [[NSString alloc]initWithFormat:@"%d",20];
NSLog(@"%@",string4);
NSLog(@"%@",[string4 class]);//查看string4是属于哪一种类型的

//12.大小写转换
NSString *str10 = @"iLoveLiuyifei";
NSString *result2 = [str10 uppercaseString];
NSLog(@"%@",result2);
NSString *str11 = [result2 lowercaseString];
NSLog(@"%@",str11);
NSString *str12 = [str11 capitalizedString];//首字母大写
NSLog(@"%@",str12);

//13.取出字符串中制定的char
NSString *string6 = @"liuyifei";
unichar c= [string6 characterAtIndex:3  ];
NSLog(@"%c",c);

#pragma mark---NSMutableString字符串的使用

//1.使用便利构造器创建可变字符串对象
NSMutableString *str13=[ NSMutableString stringWithFormat:@"%@",@"刘亦菲"];
NSLog(@"%@",str13);

//2.字符串拼接
[str13 appendString:@"爱童星" ];//可变字符串的拼接不需要再用另一个字符串来进行拼接,它是对原字符串本身进行操作
NSLog(@"%@",str13);

//3.字符串替换
NSRange range2 = NSMakeRange(0, 3);
[str13 replaceCharactersInRange:range2 withString:@"周冬雨"];
NSLog(@"%@",str13);

//4.字符串插入
[str13 insertString:@"和刘亦菲都" atIndex:3];
NSLog(@"%@",str13);

#pragma mark---NSArray不可变数组的使用

//1.使用实例化方法来创建并是初始化对象
NSArray *array1 =[[NSArray alloc]initWithObjects:@"liuyifei",@"zhoudongyu",@"tongxing", nil];
NSLog(@"%@",array1);

//2.使用便利构造器创建对象
NSArray *array2 = [NSArray arrayWithObjects:@"liuyifei",@"zhoudongyu",@"cangjinkong", nil];
NSLog(@"%@",array2);

//通过字面量方式创建数组,
//所谓字面量:字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。
NSArray *array21 = @[@"liuyifei",@"zhoudongyu",@"cangjinkong"];//这种方式实际上就是默认的类方法创建的(便利构造器)
NSLog(@"%@",array21);
//创建一个空对象,并将空对象放入数组,需要使用NSNull这个类方法
NSNull *nul = [NSNull null];
NSArray *array3 = [NSArray arrayWithObjects:@"zhoudongyu",nul,@"liuyifei",@"cangjinkong", nil];

//3.通过给定对象,返回字符串对象在数组中的下标
NSUInteger index = [array3 indexOfObject:@"liuyifei"];
NSLog(@"%ld",index);

//4.通过给定的数组的下标,获得该下标的元素
NSString *str14 = [array2 objectAtIndex:2];
NSLog(@"%@",str14);
NSLog(@"%@",array2[2]);//字面量的方式

//5.获得数组的个数
NSLog(@"%lu",[array2 count]);

//6.遍历数组
for (int i=0; i<[array2 count]; i++) {
NSLog(@"%@",[array2 objectAtIndex:i]);
//相当于
//NSLog(@"%@",array2[i]);
}

//7.快速遍历
for (NSString *s in array2) {//见后面解释
NSLog(@"%@",s);
}

//8.判断数组中是否包含某一个对象
BOOL isContain = [array2 containsObject:@"cangjinkong"  ];
NSLog(@"%d",isContain);

//9.使用指定的连接符连接数组中所有的元素
NSString *content = [array2 componentsJoinedByString:@" "];
NSLog(@"%@",content);

//10.在数组的尾部添加一个元素
NSArray *array6 = [array2 arrayByAddingObject:@"xiaozhe"];
NSLog(@"%@",array6);

#pragma mark---NSMutableArray可变数组的使用

//1.使用父类创建可变数组
NSMutableArray *array5 = [NSMutableArray arrayWithObjects:@"liuyifei",@"zhoudongyu",@"cangjinkong",nil];

//2.使用本类创建可变数组
NSMutableArray *array7 = [NSMutableArray arrayWithCapacity:10];
NSLog(@"%@",array7);//此时数组为空
for (int i=0; i<10; i++) {
//2.1.把数字转换成字符串对象放入数组中
NSString *intStr2 = [NSString stringWithFormat:@"%d",i];
//2.2.将每次创建的字符串对象放入数组中
[array7 addObject:intStr2];

}

//3.移除数组中的某一个对象
[array5 removeObject:@"cangjinkong"];
NSLog(@"%@",array5);
//
[array5 removeObjectAtIndex:1];
NSLog(@"%@",array5);

//4.向数组中插入元素
[array5 insertObject:@"xiaozhe" atIndex:1];
NSLog(@"%@",array5);

//5.交换数组中的两个元素
[array5 exchangeObjectAtIndex:0 withObjectAtIndex:1];
NSLog(@"%@",array5);

//6.移除数组中所有元素
[array5 removeAllObjects];
NSLog(@"%@",array5);

//7.添加数组,把array7的所有元素都添加到array5里
[array5 addObjectsFromArray:array7];
NSLog(@"%@",array5);

//8.二维数组
//将array5添加到数组array7,这样array7就变成了二维数组
[array7 addObject:array5];
NSLog(@"%@",array5);

#pragma mark---NSNumber数值的使用

NSMutableArray *arr = [NSMutableArray array];
//1.把整型值转化为NSNumber类型的对象
NSNumber *number = [NSNumber  numberWithInt:18];
NSLog(@"%@",[number class]);
[arr addObject:number];

//2.把BOOL类型的值转化为NSNumber 类型的对象
BOOL flag11 = YES;
NSNumber *number1 = [NSNumber numberWithBool:flag11];
[arr addObject:number1];

//3.使用字面量的方式将整型值转化为数值类型对象
NSNumber *number2 = @(70);
[arr addObject:number2];
NSLog(@"%@",arr);

//从数组中拿出来的元素对象,将其转换为相应的基本数据类型

NSNumber *number3 =arr[0];//相当于[arr objectAtIndex:0];
int value3 = [number3 intValue];
NSLog(@"%d",value3);
NSNumber *number4 = arr[1];
int value4= [number4 boolValue];
NSLog(@"%d",value4);
}
returen 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oc 对象 集合
相关文章推荐