OC的字符串操作,
NSString *str = @"天空";
格式化创建字符串
NSLog(@"hi");
NSLog(@"hi %@",@"you");
NSString *str2 = [[NSString alloc]initWithFormat:@"我爱%@ ",str];
NSLog(@"%@",str2);
遍历构造器初始化字符串
//1.
NSString *str3 = [NSString stringWithFormat:@"我我%@",str2];
NSLog(@"%@",str3);
//2.
NSString *str4 = [[NSString alloc]initWithString:@"我爱大海"];
NSString *str5 = [NSString stringWithString:@"我来了"];
将C语言的字符串转为OC的字符串对象
NSString *str6 = [[NSString alloc]initWithUTF8String:"iOS"]; // 初始化转
NSLog(@"%@",str6);
NSString *str7 = [NSString stringWithUTF8String:"iOS"]; // 通过构造器转
NSLog(@"%@",str7);
将文件中的内容读入到字符串对象中
初始化方法
// initWithContensOfFile:@"此处填写文件路径" encoding:NSUTF8StringEncoding(此处填写编码格式) error:nil(此处填写错误信息)
NSString *str8 = [[NSString alloc]initWithContentsOfFile:@"/Users/mylove/Desktop/test.txt"encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str8);
构造器方法
NSString *str9 = [NSString stringWithContentsOfFile:@"/ Users/mylove/Desktop/test.txt" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str9);
对字符串的操作
计算字符串的长度
NSUInteger len = [str7 length];
NSLog(@"%lu",len);
获取某段范围的字符串
如果A是B的子串,A必须是连续的,且在B中也能找到与A一样连续的对应相同字符段,这时A才是B子串
NSString *str10 = @"abcdefg";
NSRange rang = {0,4};
NSString *str11 = [str10 substringWithRange:rang];
NSLog(@"%@",str11);
通过子串获取在父串中的范围
NSRange rang2 = [str10 rangeOfString:@"def"];
NSLog(@"%lu , %lu",rang2.location,rang2.length);
获取到某个位置的子串,从0开始到指定位置之前
NSString *str12 = [str10 substringToIndex:3];
NSLog(@"%@",str12);
从某个位置开始读取字符串,包含当前位置的字符
NSString *str13 = [str10 substringFromIndex:3];
NSLog(@"%@",str13);
字符串的拼接
格式化拼接
1.
NSString *str14 = [str stringByAppendingString:@"是我的"];
NSLog(@"%@",str14);
2.
NSString *str15 = [str stringByAppendingFormat:@"是我的%@.%@",@".",@"."];
NSLog(@"%@",str15);
字符串替换
替换掉原字符串中出现的字符段
NSString *str16 = [str15 stringByReplacingOccurrencesOfString:@"天空" withString:@"汤。。。圆"];
NSLog(@"%@",str16);
判断字符串是否包含某个前缀或者后缀
NSString *string1 = @"OC字符串练习";
判断前缀
BOOL b1 = [string1 hasPrefix:@"OC"];
NSLog(@"%d",b1);
NSLog(@"%@",b1 ? @"YES" : @"NO");
判断后缀
BOOL b2 = [string1 hasSuffix:@"练习"];
NSLog(@"%@",b2 ? @"YES" : @"NO");
判断两个字符串是否相等
NSString *string2 = @"helloworld";
NSString *string3 = @"hello";
BOOL b3 = [string2 isEqualToString:string3];
NSLog(@"%d",b3);
比较两个字符串的大小
对比时区分字符串大小写
NSString *string4 = @"Helloworld";
NSString *string5 = @"helloworld";
/*
返回值类型 NSComparisonResult 是一个枚举类型
enum {
NSOrderedAscending = -1,
NSOrderedSame, = 0
NSOrderedDescending = 1
};
typedef NSInteger NSComparisonResult;
*/
NSInteger n = [string4 compare:string5];
NSLog(@"%ld",n);
// 也可以使用 switch case 搭配 枚举使用
/*
switch (n) {
case NSOrderedAscending:
NSLog(@"%@ < %@",sStr4,sStr5);
break;
case NSOrderedSame:
NSLog(@"%@ = %@",sStr4,sStr5);
break;
case NSOrderedDescending:
NSLog(@"%@ > %@",sStr4,sStr5);
default:
break;
}
*/
不区分大小写比较,只比较字符串是否相同
n = [string4 caseInsensitiveCompare:string5];
NSLog(@"%ld",n);
可变字符串 NSMutableString 它继承自NSString,所以NSString的所有方法它都能用
NSMutableString *mStr = [[NSMutableString alloc]initWithString:@"我与你有个约会"];
NSLog(@"%@",mStr);
NSMutableString *mStr1 = @"我与有个约会".mutableCopy;
// 在指定位置插入字符串
[mStr1 insertString:@"klone"atIndex:2];
NSLog(@"%@",mStr1);
// 在尾部拼接字符串
[mStr1 appendString:@"在岛上"];
NSLog(@"%@",mStr1);
// 指定范围内删除字符段
[mStr1 deleteCharactersInRange:NSMakeRange(0, 5)];
NSLog(@"%@",mStr1);
// 在指定的范围内修改
[mStr1 replaceCharactersInRange:NSMakeRange(0,3) withString:@"我和你。。。有"];
NSLog(@"%@",mStr1);
NSString *string6 = @"i love you";
// 全部转换成大写
NSString *string7 = [string6 uppercaseString];
NSLog(@"%@",string7);
// 全部转换成小写
NSString *string8 = [string7 lowercaseString];
NSLog(@"%@",string8);
// 每个单词首字母大写
NSString *string9 = [string8 capitalizedString];
NSLog(@"%@",string9);
下面是一个NSNumber 数字型,,,主要把数据基本类型转化为对象,也可以把对象转化为基本数据类型
整型转对象,以整型为例
NSNumber *intNum = [NSNumber numberWithInt:100];
NSLog(@"%@",intNum);
对象转整型
int num1 = [intNum intValue];
NSLog(@"%d",num1);
/*
练习:
判断一个字符串后缀是否有 .jpg ,没有的话就加上,有的话就换成 .png
*/
NSString *s = @"name.jpg";
NSString *s2 = nil;
// 判断后缀是否含有.jpg
if ([s hasSuffix:@".jpg"]){
s2 = [s stringByReplacingOccurrencesOfString:@".jpg" withString:@".png"];
}else{
s2 = [s stringByAppendingString:@".jpg"];
}
NSLog(@"%@",s2);
/*
练习:
验证用户使用qq邮箱登录,若输入不为qq邮箱格式则加上@qq.com
*/
NSString *inPut = @"1234";
BOOL b4 = [inPut hasSuffix:@"@qq.com"];
if (b4 == 0){
inPut = [inPut stringByAppendingString:@"@qq.com"];
NSLog(@"%@",inPut);
}else {
NSLog(@"%@",inPut);
}