iOS NSString(一) - 常用方法
2023-02-02 本文已影响0人
搬砖的crystal
1. 不可变字符串
//创建一个不可变字符串
//1.使用一个实例方法创建了一个字符串
NSString *str1 = [[NSString alloc]init];; //存在代码区
//2.字面量方法创建一个字符串(语法糖)
NSString *str2 = @"hello";
NSLog(@"str2 is %@",str2);
//3.字符串转化成数字型再计算(intValue, floatValue)
NSString *str3 = @"2020";
int s = [str3 intValue];
int d = s + 1;
NSLog(@"字符串转化成数字型再计算:%d",d);
//4.数字型转化为字符串
int z = 12345;
NSString *g = [NSString stringWithFormat:@"%d",z];
NSLog(@"数字型转化为字符串:%@",g);
//5.使用已有的字符串创建一个新的字符串
NSString *str4 = [[NSString alloc]initWithString:str3];
NSLog(@"str4 is %@",str4);
//6.遍历构造器来创建一个字符串对象(一般情况下,每一个实例化方法,都会有一个实例构造器方法)
NSString *str5 = [NSString stringWithString:str4];
NSLog(@"str5 is %@",str5);
//获取字符串长度
NSInteger length = str5.length;
NSLog(@"length is %ld",length);
//获取指定索引位置的字符:索引技术从零开始计数
char c = [str5 characterAtIndex:3];
NSLog(@"c is %c",c);
//字符串查找:判断是否以参数给定的字符串开头。是,返回真;否,返回假。
BOOL result1 = [str5 hasPrefix:@"2"];
NSLog(@"result1:%d",result1);
//字符串查找:判断是否以参数给定的字符串结尾。是,返回真;否,返回假。
BOOL result2 = [str5 hasSuffix:@"2"];
NSLog(@"result2:%d",result2);
//字符串查找:查询某个string的范围信息,使用一个结构体NSRange包含两个成员变量:location(要查找的起始位置)和length(从当前位置向后数多长).
NSString *str6 = @"sayhelloworld";
NSRange range = [str6 rangeOfString:@"yhello"];
NSLog(@"location = %ld, length = %ld", range.location, range.length);
//字符串的截取
NSString *str7 = @"handily";
//获取从第5位到最后一位字符,截取前面的字符串
NSString *str8 = [str7 substringFromIndex:5];
NSLog(@"截取后的字符串为:%@",str8);
//获取第0位到第5位的字符串(不包括第五位)
NSString *str9 = [str7 substringToIndex:5];
NSLog(@"截取后的字符串为:%@", str9);
//获取第2位后的四位字符串
NSString *str10 = [str7 substringWithRange:NSMakeRange(2, 4)];
NSLog(@"截取后的字符串为:%@",str10);
/***
* 字符串的大小转化:
* 1.将所有字符串内容变为大写字母: uppercaseString
* 2.将所有字符串内容变为小写字母: lowercaseString
* 3.将单词的首字母小写变为大写字母: capitalizedString
**/
//将所有字符串内容变为大写字母
NSString *str11 = [str7 uppercaseString];
NSLog(@"str11 is %@",str11);
//将所有字符串内容变为小写字母
NSString *str12 = [str7 lowercaseString];
NSLog(@"str12 is %@",str12);
//将单词的首字母小写变为大写字母
NSString *str13 = [str7 capitalizedString];
NSLog(@"str13 is %@",str13);
//字符串拼接:将两个字符串拼在一起后形成一个新的字符串,原来两个字符串并未发生改变
NSString *h = @"2020年";
NSString *j = @"3月";
NSString *k = @"7号";
NSString *riqi = [[[[h stringByAppendingString:@"_"]
stringByAppendingString:j]
stringByAppendingString:@"_"]
stringByAppendingString:k];
NSLog(@"%@",riqi);
//比较两个字符串是否相等
BOOL result3 = [h isEqualToString:j];
NSLog(@"result3:%d",result3);
//字符串修改:给定一个字符串判断后缀是否为.png,如果不是则修改为.png
NSString *str14 = @"啦啦啦.xib";
BOOL result4 = [str14 hasSuffix:@".png"];
if (!result4) {
//字符串的替换
NSString *str15 = [str14 stringByReplacingOccurrencesOfString:@".xib" withString:@".png"];
NSLog(@"str15 is %@",str15);
}
// 数组与字符串的相互转化
//分割字符串(将字符串转化成数组 - componentsSeparatedByString:)
NSString *nbc = @"2020.3.7";
NSArray *arr = [nbc componentsSeparatedByString:@"."];
NSLog(@"arr = %@", arr);
/**
打印: arr = (
2020,
3,
7
)
*/
NSLog(@"分割后的字符串:%@",p);
//将数组转化成字符串 - componentsJoinedByString:
NSArray *array = @[@"a",@"b",@"c",@"d"];
NSString *string = [array componentsJoinedByString:@","];
NSLog(@"string = %@",string); //打印: string = a,b,c,d
//字符串的末尾追加新的字符串
NSString *bbc = @"www.cn";
NSString *bbc1 = [bbc stringByAppendingString:@"itcast.cn"];
NSLog(@"字符串的末尾追加新的字符串:%@",bbc1);
//带引号的字符串
NSString *string = @"hello,\"world\"";
NSLog(@"带引号的字符串:%@",string);
NSString *string2 = [NSString stringWithFormat:@"hello,\"%@\"",@"世界"];
NSLog(@"拼接字符串:%@",string2);
2.可变字符串
//可变字符串才可以编辑
//1.字符串的插入
NSMutableString *mStr1 = [[NSMutableString alloc]initWithString:@"hello1"];//存在堆区
NSLog(@"mStr1 is %@",mStr1);
//1.可变字符串拼接
[mStr1 appendString:@"啦啦啦"];
NSLog(@"拼接后的字符串:%@",mStr1);
//把一个字符串插入另一个字符串中的某一位置
[mStr1 insertString:@"234" atIndex:0];
NSLog(@"字符串插入:%@",mStr1);
//2.字符串覆盖替换
NSRange range1 = {1, 2};
[mStr1 replaceCharactersInRange:range1 withString:@"dffdf"];
NSLog(@"字符串覆盖替换:%@",mStr1);
//3.删除指定范围的字符串
[mStr1 deleteCharactersInRange:NSMakeRange(0, 2)];
NSLog(@"删除指定范围的字符串:%@",mStr1);