lesson4
pragma mark NSString 字符串类
在c語言中 使用ASCII編碼的字符作為字符串並且c語言中并沒有專門管理的基本類型
在oc中,只要符號符合nuicode編碼,就可以使用字符串使用,早oc中,使用nsstrig來管理字符串
創建一個字符串
使用實例方法創建
NSString *string = [[NSString alloc] init];
字面量方法創建一個字符串
NSString *string2 = @"hello !"; NSString *string3 = [[NSString alloc] initWithFormat:@"%@",@"hahaha" ]; NSLog(@"%@",string2); NSLog(@"%@",string3);
使用字符串来表示数字
NSString *string4 = [[NSString alloc] initWithFormat:@"%d",11]; NSLog(@"%@",string4);
使用一个已有的字符串创建一个字符串
NSString *string5 = [[NSString alloc] initWithString:string4]; NSLog(@"%@",string5);
使用便利构造器创建一个字符串对象(一般情况下,每一个实例变量,都会有对应的便利构造方法)
NSString *string6 = [NSString stringWithString:string5]; NSLog(@"%@",string6);
pragma mark 不可变字符串操作常用方法
`NSString *string = @"hello i want to go!";`
获取字符串长度
int length =(int) [@"我去 逛商店 买东西 啦啦啦" length];
类型强制转换
类型强制转换 :在变量或方法前使用小括号将要转换的新类型括起来,这样就将一种其他类型强制转换为小括号中的类型了
NSLog(@"% d", length);
获取指定索引位置的字符 :索引计数是从0开始计数
char c = [string characterAtIndex:2]; NSLog(@"%c",c);
字符串查找:判断是否可以参数给定得字符串开头:是返回真,不是返回假
BOOL resule = [string hasPrefix:@"hello"]; NSLog(@"%d",resule);
字符串查找:判断是否可以参数给定得字符串结尾:是返回真,不是返回假
BOOL result1 = [string hasSuffix:@"!"]; NSLog(@"%d",result1);
给定一个字符串,判断是否是.png 如果不是修改为.png
NSString *string1 = @"菜鸡.gif"; if ([string1 hasSuffix:@".png"] != 1 ) {
字符串替换
NSString *string2 = [string1 stringByReplacingOccurrencesOfString:@".gif" withString:@".png" ]; NSLog(@"%@",string2); }
字符串查找,查询某个string的范围信息,使用一个结构体nsrange包含两个成员变量 : location (要查找的起始位置)和length(从当前位置向后数多 长)。
NSRange range = [string1 rangeOfString:@".gif"]; NSLog(@"location = %ld ,length = %ld",range.location,range.length);
字符串查找:根据范围信息来获取到这个范围的字符串
1.创建一个范围(nsrange类型的变量)
NSRange range1 = NSMakeRange(2, 4);
调用方法将位置信息作为方法参数传入,获取到这个位置的字符串
NSString *str = [string1 substringWithRange:range1]; NSLog(@"%@",str);
NSString *string1 = @"菜鸡.gif"; if ([string1 hasSuffix:@".png"] != 1 ) { NSRange range1 = NSMakeRange(2, 4);
调用方法将位置信息作为方法参数传入,获取到这个位置的字符串
NSString *str = [string1 substringWithRange:range1];
字符串替换:用第二个参数替换第一个参数
NSString *string2 = [string1 stringByReplacingOccurrencesOfString:str withString:@".png" ]; NSLog(@"%@",string2); }
字符串查找:获取从指定位置开始一直到字符串结束的字符串
NSString *string3 = [string substringFromIndex:3]; NSLog(@"%@",string3);
字符串查找:获取从开始一 直到指定位置的字符串(并不获取指定位置上的字符)
NSString *string4 = [string substringToIndex:3]; NSLog(@"%@",string4);
字符串操作:字符串拼接
NSString *string1 = @"haha45545hh h22elool nosoadf fdfs "; NSString *string2 = @"AHYDSL SAKDHIUJB KIASJDOGH KJL ";
将两个字符串拼接到一起后形成一个新的字符串 原来两个字符串并未发生改变
NSString *addString = [string1 stringByAppendingString:string2]; NSLog(@"%@",addString);
字符串比较:计较两个字符串是否相等
BOOL result = [string1 isEqualToString: string2]; NSLog(@"%d",result);
字符串比较:判断哪个字符串大
比较结果是个枚举值
NSOrderedAscending = -1L 升序
NSOrderedSame 相等
NSOrderedDescending 降序
NSString *string3 = @"😊"; NSString *string4 = @"😢"; int a = [string3 compare: string4]; NSLog(@"%d",a);
将基本数据类型样式的类型转换为基本数据类型(int|float)
NSString *string5 = [NSString stringWithFormat:@"%d",12]; int b = [string5 intValue];
将一个整型数构成的字符串变为整型类型
NSLog(@"%d",b); NSString *string6 = @"12.34"; float c = [string6 floatValue];
将一个浮点型数组成的字符串转化为浮点数
NSLog(@"%f",c);
字母的大小写转换 (转换英文字母)
将英文中的小写转换为大写
NSString *bigString = [string1 uppercaseString]; NSLog(@"%@",bigString);
将英文中的大写转换为小写
NSString *smallString = [string2 lowercaseString]; NSLog(@"%@",smallString);
将字符串的首字母改为大写
NSString *firstBigString = [string1 capitalizedString]; NSLog(@"%@",firstBigString);
pragma mark 可变字符串
可变字符串与不可变字符串的区别和联系
1.可变字符串继承自不可变的字符串的子类,继承了所有方法
2.可变字符串本身声明了字符串的拼接,替换,插入,删除等操作,这些操作并不是继承自父类
3.不可变字符串的拼接和替换方法:第一:以string开头 ,第二具有返回值,返回的是新的字符串
4.可变字符串的拼接和替换方法:第一:不以string开头,第二:没有返回值,在直接原对象进行操作
创建可变字符串
NSMutableString *mstring = [NSMutableString stringWithFormat:@"%@",@"菜鸡de"];
可变字符串拼接
[mstring appendString:@"尾巴"]; NSLog(@"%@",mstring);
可变字符串替换
[mstring replaceCharactersInRange:NSMakeRange(1, 3) withString:@"鸟的"]; NSLog(@"%@",mstring);
可变字符串的插入操作
[mstring insertString:@"哈哈" atIndex:3]; NSLog(@"%@",mstring);
可变字符串删除字符
[mstring deleteCharactersInRange:NSMakeRange(2, 3)]; NSLog(@"%@",mstring);
网友评论