//NSString 不可变字符串.
/*
//1.初始化
//使用字符串常量初始化
NSString *s1=@"hello";
//初始化方法
NSString *s2=[[NSString alloc] initWithFormat:@"%@,world",s1];
NSLog(@"s2,%@",s2);
//使用一个已经创建好的字符串,初始化另一个字符串,
NSString *s3=[[NSString alloc] initWithString:s2];
NSLog(@"s3,%@",s3);
//使用便利构造器创建字符串
NSString *s4=[NSString stringWithFormat:@"%@,世界你好",s3];
NSLog(@"s4,%@",s4);
NSString *s5=[NSString stringWithString:s4];
NSLog(@"s5,%@",s5);
//常用的方法
//1.length,返回字符串的长度
// NSInteger n1=[s1 length];
NSLog(@"%ld",[s5 length]);
//2.characterAtIndex: 返回字符串的第n个字母
NSLog(@"www%c",[s1 characterAtIndex:1]);
//3.hasPrefix.判断输入的字符串是不是s5的前缀,如果是返回Yes,如果不是返回NO;
BOOL b1= [s5 hasPrefix:@"o"];
NSLog(@"%d",b1);
//4.hasSuffix:判断输入的字符串是不是s5的后缀,如果是返回Yes,如果不是返回NO;
BOOL b2=[s5 hasSuffix:@"界你好"];
NSLog(@"%d",b2);
//5.rangOfString:返回输入字符串在s5中得范围(范围包括位置和长度).
//表示范围的结构体是NSRange
NSRange rang1= [s5 rangeOfString:@"llo"];
NSLog(@"位置%lu,长度:%lu",rang1.location,rang1.length);
//6.stringWithRange:传入一个范围NSRange,通过这个范围,截取s5中得字串,并返回.
NSRange rang2={0,3};
NSString *n = [s5 substringWithRange:rang2];
NSLog(@"6,%@",n);
NSString *s7=@"abcdefg";
//7.substringFromIndex:传入一个下标值,
//然后将s7中从传入下标值开始一直到结束的子串返回,返回的子串包含该下标的字符
NSString *s8=[s7 substringFromIndex:2];
NSLog(@"s8,%@",s8);
//8.substringToIndex:入一个下标值,
//然后将s7中从头开始一直到该下标的子串返回,返回的子串不包含该下标的字符
NSString *s9=[s7 substringToIndex:4];
NSLog(@"s9,%@",s9);
//9.stringByAppendingString:将参数字符串拼接到s7得后面,
NSString *s10=[s7 stringByAppendingString:s8];
NSLog(@"s10,%@",s10);
//10.isEqualString:判断两个字符串是否相等,是yes,否NO,
BOOL s11= [s7 isEqualToString:@"abcdefg"];
NSLog(@"s11,%d",s11);
//11.compare:比较两个字符串大小,如果是升序,返回 -1, 相同返回0,降序返回1,
NSInteger s12=[s7 compare:@"abcdf"];
NSLog(@"%ld",s12);
//12.uppercaseString 小写换大写
NSString *s13=[s7 uppercaseString];
NSLog(@"s13,%@",s13);
//13.lowercaseString 大写换成小写
NSString *s14=[s13 lowercaseString];
NSLog(@"%@",s14);
//14.capitalizedString 首字母变大写,其他的都变成小写.
NSString *s15=[s7 capitalizedString];
NSLog(@"%@",s15);
//15.intValue 找到第一个不是数字的字符为止,将前面的数字字符转换成整形并返回
NSString *s16=@"12m3";
int i1=[s16 intValue];
NSLog(@"%d",i1);
//16.floatValue 将字符串中浮点型字符转换成浮点型.
NSString *f2=@"12.567m8";
float f1=[f2 floatValue];
NSLog(@"%f",f1);
//NSString是不可变的字符串,字符串一但创建就不能改变了,
//NSMutableString
//可变字符串继承不可变字符串,同时继承了所有的方法
NSMutableString *ms1=[[NSMutableString alloc] initWithFormat:@"abcdefg"];
// NSMutableString *ms2=[NSMutableString stringWithFormat:@"abcdefg"];
// NSMutableString *ms3=@"564654"; 只有这个不能用
//可变字符串拼接,直接拼到原串后边,
[ms1 appendString:@"hijk"];
NSLog(@"%@",ms1);
//替换:替换和被替换之间没有数量限制
NSRange rang3={0,3};
[ms1 replaceCharactersInRange:rang3 withString:@"qqqqqq"];
NSLog(@"%@",ms1);
//插入字符串
[ms1 insertString:@"www" atIndex:2];
NSLog(@"%@",ms1);
//删除
// NSRange rang4={2,3};
[ms1 deleteCharactersInRange:NSMakeRange(2, 3)];
NSLog(@"%@",ms1);
举例
NSString *d1=@"123.png";
NSString *d5=nil;
BOOL w1=[d1 hasSuffix:@"png"];
NSLog(@"%d",w1);
if (w1) {
NSInteger d3=[d1 length];
NSString *d4=[d1 substringToIndex:d3-3];
d5=[d4 stringByAppendingString:@"jpg"];
}
if(!w1){
d5=[d1 stringByAppendingString:@".jpg"];
}
NSLog(@"%@",d5);
NSMutableString *ss=[NSMutableString stringWithString:@"hello.pnggftmrtyhjmgvu"];
NSRange ran=[ss rangeOfString:@"png"];
if (ran.location !=kCFNotFound ) {
[ss deleteCharactersInRange:ran];
NSLog(@"%@",ss);
}
NSArray
//NSArray 不可变数组
//OC中得数组,只能存对象,不可以存标量(int ,float,double,char)
//1.常量的方式初始化数组
//OC的数组也不能越界
NSArray *arr1=@[@"12",@"2",@"3",@"3"];
NSLog(@"%@",arr1[3]);
//2.便利构造器初始化一个数组,只有一个元素,不可变字符串
NSArray *arr2=[NSArray arrayWithObject:@"呵呵"];
NSLog(@"%@",arr2[0]);
//多元素数组.nil结束
NSArray *arr3=[NSArray arrayWithObjects:@"333", @"222",@"111",nil];
NSLog(@"%@",arr3);
//使用
//统计有几个元素
NSUInteger i= [arr1 count];
NSLog(@"%lu",i);
//使用下标选取数组中的值
NSString *s1=[arr1 objectAtIndex:1];
NSLog(@"%@",s1);
//可变数组
NSMutableArray *marr=[NSMutableArray arrayWithObjects:@"111",@"222",@"333", nil];
NSMutableArray *marr1=[NSMutableArray array]; //创建一个空的可变字符串
//给可变字符串添加元素,每次添加到数组最后面
[marr1 addObject:@"111"];
NSLog(@"%@",marr1);
//添加到指定位置
[marr1 insertObject:@"222" atIndex:0];
NSLog(@"%@",marr1);
//交换两个位置的元素
[marr1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
NSLog(@"%@",marr1);
//使用
NSLog(@"%@",marr1[0]);
//从0位置取值,
[marr1 objectAtIndex:0];
//给0位置赋值
[marr1 replaceObjectAtIndex:0 withObject:@"465"];
NSLog(@"%@",marr1);
//删除
//删除指定元素,如果没有,就什么也不删
[marr removeObject:@"222"];
NSLog(@"%@",marr);
//指定下标删除
[marr removeObjectAtIndex:0];
NSLog(@"%@",marr);
//NSNumber
int i=10;
//转int类型的
NSNumber *n1=[NSNumber numberWithInt:i];
NSLog(@"%@",n1);
float i2=125.58;
//装float类型的
NSNumber *n2=[NSNumber numberWithFloat:i2];
NSLog(@"%@",n2);
//转回来.
int i1= [n1 intValue];
float f1=[n2 floatValue];