1.//将传入的字符串逆序
//比如输入 @”abcdef”输出@”fedcba”
2.//压缩字符串
//比如输入@”aaabbbcceaa” 输出@”3a3b2c1e2a”
3.//对字符串按字母顺序进行排序
//比如输入@”aczabczab” 输出@”aaabbcczz”
4.//将原字符串进行小写转大写,大写转小写
//比如输入 @”aBCdEfGA” 输出 @”AbcDeFga”
5.// 替换字符串srcStr中从startKey到endKey之间的字符串//返回结果
//比如输入srcStr=@”abcdaabbccdef” startKey=@”da” endKey=@”cde” 输出 @”abbc”
//1.
+(NSString*)reveserString:(NSString*)srcStr
{
NSMutableString* mStr=[[NSMutableString alloc]init];
for(NSInteger i=srcStr.length-1;i>=0;i--){
unichar c=[srcStr characterAtIndex:i];
[mStr appendFormat:@"%C",c];
}
return mStr;
}
//2.
+(NSString*)compString:(NSString*)srcStr
{
NSMutableString *mStr=[[NSMutableString alloc]init];
for(NSInteger i=0;i<srcStr.length;){
// 取出每个字符
unichar c=[srcStr characterAtIndex:i];
int len=1;
// 查找字符后面相同的字符,统计个数
for(NSInteger j=i+1;j<srcStr.length;j++){
unichar c1=[srcStr characterAtIndex:j];
if(c==c1){
len++;
}else{
break;
}
}
[mStr appendFormat:@"%d%C",len,c];
// 从下一个字符再开始判断统计个数
i=i+len;
}
return mStr;
}
//3.
+(NSString*)sortString:(NSString*)srcStr
{
NSMutableArray * array=[[NSMutableArray alloc]init];
// 将字符串拆成数组(取出每一个字符,包装成字符串,字符串只含有一个字符,加入数组)
for(NSInteger i=0;i<srcStr.length;i++){
unichar c=[srcStr characterAtIndex:i];
NSString * str=[NSString stringWithFormat:@"%C",c];
[array addObject:str];
}
// 对数组(元素是含有一个字符的字符串)进行排序
[array sortUsingSelector:@selector(compare:)];
// 将排序之后的数组拼接成字符串
NSString *s=[array componentsJoinedByString:@""];
return s;
}
//4.
+(NSString *)reveserChacter:(NSString*)srcStr
{
NSMutableString *mStr=[[NSMutableString alloc]init];
// 依次取出每个字符,判断是否大小写,再转换
for(NSInteger i=0;i<srcStr.length;i++){
unichar c=[srcStr characterAtIndex:i];
if(c>='a'&&c<='z'){
c-=32;
}else if (c>='A'&&c<='Z'){
c+=32;
}
[mStr appendFormat:@"%C",c];
}
return mStr;
}
//5.
+(NSString *)replaceString:(NSString *)srcStr betweenStartKey:(NSString* )startKey andEndKey:(NSString*)endKey
{
// 分别查找两个子字符串的位置,先取从0到endKey之间的子字符串,再取从startKey之后到最后的字符串
NSRange range1=[srcStr rangeOfString:startKey];
NSRange range2=[srcStr rangeOfString:endKey];
NSString* nStr=[[srcStr substringToIndex:range2.location] substringFromIndex:range1.location+range1.length];
// 实现的连续操作,第二个方法是在第一个方法的结果上进行的,第二个方法操作时,字符串的起始位置已经发生了变化,这样的结果不正确
//nStr=[[srcStr substringFromIndex:range1.location+range1.length]substringToIndex:range2.location];
return nStr;
}