Foundation框架之NSString及其Mutable类型
目录
拼接
拆分
字符串比较
是否包含某字符串
字数统计
大小写转换
概述
对NSString的理解
对字符串的实用操作
拼接
NSString *combinedStr = [NSString stringWithFormat:@"%@%@",str0,str1];
注:本人比较倾向于使用这种方式做字符串的拼接,可扩展性强,当有新需求时只需要更改format里面的即可,增删比较方便
拆分
NSArray *strArrays = [str2 componentsSeparatedByString:@"str"];
NSArray *strArrays2 = [str2 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"str"]];
字符串比较
不忽略大小写
[str isEqualToString:@"str"];
忽略大小写
[str caseInsensitiveCompare:@"str"] == NSOrderedSame
是否包含某字符串
不忽略大小写
NSRange range = [str rangeOfString:@"str"];
if(range.length>0){ //包含 }
忽略大小写
NSRange range = [str rangeOfString:@"str" options:NSCaseInsensitiveSearch];
if(range.length>0){ //包含 }
字数统计
字符总数
[str length];
某一字符串的个数(includeStr为查找的字符串)
实现方式一
NSArray *array = [str componentsSeparatedByString:includeStr];
NSUInteger sum = array.count - 1;
实现方式二
实现思路
每找到一个字符,下一次的寻找范围为先前找到的字符串的下一位置开始到字符串末尾,循环寻找,直至没有找到或者到字符串末尾
+ (NSUInteger)string:(NSString *)str includeStr:(NSString *)includeStr{
NSUInteger sum = 0;
NSUInteger index = 0;
NSRange range = [str rangeOfString:includeStr options:NSLiteralSearch range:NSMakeRange(0,[str length])];
while(range.length > 0){
sum += 1;
index = range.location + range.length;
//到字符末尾
if(index >= [str length]){
break;
}
range = [str rangeOfString:includeStr options:NSLiteralSearch range:NSMakeRange(index,[str length] - index)]; //注1
}
return sum;
}
注1
返回的NSRange的location为从字符串的头开始算起,而不是从index的位置开始算起
忽略大小写则只需要把两个地方的options参数更改成:NSCaseInsensitiveSearch
大小写转换
[str lowercaseString];
[str uppercaseString];
具体的方法参见API
待研究
根据字符串首字母进行排序
NSLocale
字符串的正则判断