几种字符串的转变

原创 2015年07月09日 16:56:54

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;
}

工作职业发展/角色转变的一点感悟

毕业2年半,觉得越来越需要思考。上家公司同事提过职业发展就像一条船,从造船的工人到开船的船员,决定船上货物的主人,三种角色的提升,似乎自己也在经历这种演变。      在上家公司,90%以上的时间用...
  • feivirus
  • feivirus
  • 2016年01月16日 08:32
  • 1448

从学生到社会人士的转变

要毕业了,就意味着自己不再是要想买衣服吃饭就要打电话给父母要钱的孩子了,不再是什么都不用去想只想着过完每一天的大学生活就可以的学生了。 要毕业了,就意味着要即将面对竞争激烈的社会现实,意味着要承担起...
  • YL_yangling
  • YL_yangling
  • 2014年12月18日 09:19
  • 579

字符串实现转变

/**  * 写一个函数,将字符串open_door可以直接变成OpenDoor,  * make_by_id 变成MakeById  * '**/ function changestr(...
  • abc1988x
  • abc1988x
  • 2016年12月04日 00:24
  • 134

思维转变的重要性

    项目管理,终于上了一次关于管理的课程。之前一直以为会是那种很理论,很枯燥的课程。但是这次完全不是这样的。李涛一个我以前没听过的名字,把这门学科讲得让所有人都集中自己所有的注意力认证的倾听。  ...
  • Rush_2008
  • Rush_2008
  • 2008年03月30日 23:16
  • 638

MongoDB学习第3天,命令行导入json

1,准备一个 json 文件 2,mongoimport -d dbname -c collectionname --file json/path
  • Sukla
  • Sukla
  • 2017年12月08日 22:15
  • 49

c++读取字符串的几种方法

转自原地址 C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar())) 1、cin 1...
  • m0_38103546
  • m0_38103546
  • 2018年02月03日 22:27
  • 6

写一篇总结吧,从学生身份转变为一个码农

最近生活真的有些混乱,快要离开了,心里却还一直放心不下。 其实vmware也挺好的。想了很多vmware是一个很强大的公司,在虚拟化和云计算上遥遥领先,向很多巨头发起了强力的挑战,比如cisco,ib...
  • china1000
  • china1000
  • 2013年12月23日 20:43
  • 953

几种字符串匹配算法性能简单实验对比

做了一个很粗糙的实验,比较了几种字符串匹配算法的性能。程序用-O3进行编译优化。以下为待查找的文本长度为434018字节,模式串长度为4时的典型实验结果。可以看到,horspool算法最快,表现最差的...
  • yahreso
  • yahreso
  • 2008年02月15日 00:24
  • 714

从学校到企业:如何转换角色?

 从学校到企业:如何转换角色? 已迎来一年一度的招聘、应聘高峰,一连几天,我都在面试,这让我联想起成千上万的应届毕业生马上就要奔赴企业工作,经历由学校到企业,由学生到员工的转变。为帮助学生尽快适应工作...
  • shangyichen
  • shangyichen
  • 2009年12月26日 00:06
  • 1657

IT部门的职能转变

信息技术,在很多企业中都作为辅助后勤部门。 大多数的IT部门的工作职责: 1,配合业务部门做好相关的系统上线。 2,配合业务部门的操作,做好IT相关的电脑和网络保障。 3,做好整个公司的IT资...
  • starwish2008
  • starwish2008
  • 2016年04月19日 11:25
  • 273
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几种字符串的转变
举报原因:
原因补充:

(最多只允许输入30个字)