OC – 常用字符串方法
NSString
字符串的创建:
//------------------字符串的创建----------------------
//创建方法1
NSString *str1 = @"张三";
//创建方法2
NSString *str2=[NSString new]; //创建的是一个空字符串
//创建方法3
NSString *str3 = [NSString stringWithFormat:@"%@%d岁",str1,5];
NSLog(@"%@,%@,%@",str1,str2,str3);
//创建方法4
NSString *str4 = [NSString string];
//创建方法5
NSString *str5 = [NSStringstringWithString:@"Hello"];//会提示使用方法1的方式就可以了
NSLog(@"%@,%@,%@",str1,str2,str3);
NSRange
--NSRange的定义
typedef struct _NSRange
{
unsigned int location;
unsigned int length;
}NSRange;
NSMakeRange函数
--这个函数比较特殊 返回一个NSRange的对象。
NSMakeRanger(unsigned intlocation,unsigned int length);
例如:
NSRange range = NSMakeRanger(0,5);
NSLog(@"location is %d,lengthis %d",range.location,range.length);
获取子字符串的三种方法:
–substringFromIndex: 获取从某个下表开始到完
–substringWithRange:获取给定起始位置和长度
– substringToIndex:获取从头开始到某一个下标
//------------------字符串截取----------------------
NSString *str = @"HelloWorld!";
//根据起始点和长度
NSString *nStr = [str substringWithRange:NSMakeRange(6, 5)];
//输出
NSLog(@"%@",nStr);
//从某个下标开始到结束,截取字符串
NSString *nstr1 = [str substringFromIndex:6];
NSLog(@"%@",nstr1);
//从头开始,到某个下标结束,截取字符串
NSString *nstr2 = [str substringToIndex:6];
NSLog(@"%@",nstr2);
比较字符串是否相等:
isEqualToString方法,返回BOOL型结果
NSString *string1 = @"Hello";
NSString *string2 = @"Hello";
if ([string1 isEqualToString :string2])
NSLog(@"字符串内容相等");
if (string1 == string2)
NSLog(@"字符串指针相同");
}
比较字符串大小:
compare方法比较字符串区分时区分大小写
compare:options方法比较字符串时可以额外控制其他选项,例如是否区分大小写
NSCaseInsensitiveSearch:不区分大小写字符
NSLiteralSearch:区分大小写,进行完全比较
NSNumericSearch:根据字符串中数字大小进行比较,而不是ASCII码值,三个选项可以使用|进行多选
//------------------比较两个字符串大小----------------------
NSString *str6 = @"Hi";
NSString *str7 = @"hi";
NSLog(@"%ld",(long)[str6 compare:str7]);
NSString *str8 =@"yes1";
NSString *str9 =@"YES2";
NSComparisonResult a=[str8 compare:str9 options:NSCaseInsensitiveSearch];//不区分大小写
NSLog(@"%ld",a);
a=[str8 compare:str9 options:NSLiteralSearch];//区分大小写
NSLog(@"%ld",a);
a=[str8 compare:str9 options:NSNumericSearch];//根据字符串中数字大小进行比较
NSLog(@"%ld",a);
a=[str8 compare:str9 options:NSLiteralSearch | NSNumericSearch];
NSLog(@"%ld",a);
hasPrefix:以什么开头
hasSuffix:以什么结尾
//------------------字符串以什么开头、结尾----------------------
NSString *fileName =@"ios_45.doc";
if ([fileName hasPrefix:@"ios"])//判断是不是ios开头
{
NSLog(@"是以ios开头!");
}
if ([fileName hasSuffix:@".doc"])//判断是不是.doc结尾
{
NSLog(@"是以.doc结尾!");
}
rangeOfString:是否包含其他字符串
//------------------字符串是否包含其他字符串----------------------
NSString *str = @"HelloWorld!";
//查找str中是否有包含@“llo”,若有返回位置和长度则代表有找到指定字符串
NSRange range = [str rangeOfString:@"llo"];
NSLog(@"%lu,%lu",range.location,range.length);
-(double)doubleValue将字符串转换成double类型
-(float)floatValue将字符串转换成float类型
-(int)intValue 将字符串转换成int类型
NSString *str = @"123";
int a = [str intValue];//将数字串转化成整型数据
NSLog(@"%d",a);
float b =[str floatValue];//将数字串转化成float型
NSLog(@"%f",b);
double c =[str doubleValue];//将数字串转化成double型
NSLog(@"%lf",c);
-(NSString*)uppercaseString将字符串全部转成大写
-(NSString*)lowercaseString将字符串全部转成小写
-(NSString*)capitalizedString将字符串的每个单词的开头字母转成大写
//----------------字符串大小写转换-----------------
NSString *s2 = @"Helloworld!";
NSString *d2 = [s2 uppercaseString];//转成大写的
NSLog(@"转成大写:%@",d2);
d2 = [s2 lowercaseString];//全部转成小写
NSLog(@"转成小写:%@",d2);
d2 = [s2 capitalizedString];//将一个字符串中每个单词首字母大写
NSLog(@"%@",d2);
-(NSString*)stringByReplacingOccurrencesOfString:(NSString*)target withString:(NSString *)replacement:把字符串里面的某个字符串替换成指定字符串
-(NSString*)stringByReplacingCharactersInRange:(NSRange)rangewithString:(NSString *)replacement:指定字符串中的位置,替换成要的字符串
//------------------字符串替换函数----------------------
NSString *str = @"I am acoder!";
str = [str stringByReplacingOccurrencesOfString:@" "withString:@"-"];//把空格替换成 -
NSLog(@"%@",str);
//指定字符串中的位置,替换
str = [str stringByReplacingCharactersInRange:NSMakeRange(7, 5) withString:@"techer"];
NSLog(@"%@",str);
-(NSArray *)componentsSeparatedByString:(NSString*)separator:以指定的字符串做分割依据,将一个大的字符串分割开来,返回一个数组
//------------------字符分割函数----------------------
NSString *str1 = @"57525575@qq.com,455421747@qq.com,15133513@qq.com";
NSArray *arrEmails = [str1 componentsSeparatedByString:@","];//以 @"," 来分割
NSLog(@"%@",arrEmails);
可变字符串NSMutableString的创建:
NSMutableString *mStr = [NSMutableStringnew];
-(void)appendString:(NSString *) string; 在字符串后面追加字符串
-(void)appendFormat:(NSString *) format,…;
//------------------可变字符串----------------------
NSMutableString *mStr = [NSMutableStringnew];
//拼接
[mStr appendString:@"/Users/guansong/Desktop/班级项目"];
NSLog(@"%@",mStr);
//拼接
[mStr appendFormat:@"%@",@"/abc.txt"];
NSLog(@"%@",mStr);
//删除指定位置指定长度的字符串
[mStr deleteCharactersInRange:NSMakeRange(4, 5)];
NSLog(@"%@",mStr);
//NSString *str11 =@"How do you do";
输出文本文件:
-(BOOL)writeToFile:(NSString*)pathatomically:(BOOL)useAuxiliaryFileencoding:(NSStringEncoding)encerror:(NSError**)error
//参数 atomically 暂时将文件保存到辅助文件中
NSError *err=nil;
NSString *str121=@"how do you do?";
[str121 writeToFile:@"/Users/ibokan/Desktop/1.doc"atomically:YESencoding:NSUTF8StringEncodingerror:&err];
读取文本文件:
+(id)stringWithContentsOfFile:(NSString*)pathusedEncoding:(NSStringEncoding*)enc error:(NSError **)error //自动释放内存
-(id)initWithContentsOfFile:(NSString*)pathencoding:(NSStringEncoding)encerror:(NSError **)error
//读取文本文件
NSString *str=[NSStringstringWithContentsOfFile:@"/Users/ibokan/Desktop/1.doc"encoding:NSUTF8StringEncodingerror:nil];
NSLog(@"%@",str);