几种字符串的转变

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

C#分割字符串的几种方法

  • 2012年10月20日 13:31
  • 732B
  • 下载

C++中的几种字符串输入输出方法

c++中的字符串的几种输入与输出
  • denao
  • denao
  • 2017年07月06日 11:59
  • 743

JAVA中几种读取文件字符串

  • 2012年08月16日 16:00
  • 4KB
  • 下载

字符串相似性的几种度量方法

无论是做科学研究,还是工程项目,我们总是会碰上要比较字符串的相似性,比如拼写纠错、文本去重、上下文相似性等。度量的方法有很多,到底使用哪一种方法来计算相似性,这就需要我们根据情况选择合适的方法来计算。...

JS 删除字符串最后一个字符的几种方法

字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法: 1、用的最多的是Substring,这个也是我一直用的 s=s.Substring(0,...

C#字符串的几种加密解密方法

/// /// 字符串加密组件 /// public class Encrypt {     #region "定义加密字串变量"     private SymmetricAlgor...
  • Sev_ran
  • Sev_ran
  • 2012年07月06日 16:10
  • 8877

C#几种截取字符串的方法(split 、Substring、Replace、remove)

C#截图字符串常用的方法有 split 、Substring、Replace、remove等。 split的使用:   1. Split( Char ())      返回的字符串数组包含此实例...

C/C++编程题开头字符串、数据输入几种写法

1、题设   在IT公司编程题中,往往让你一并写上测试数据输入和结果输出的Demo,这也是程序员基本的功底。想一想如果连自己的测试数据都无法给入,后面的算法写的再好,也无法测试它的准确性和效果。下面分...

C中字符串的几种定义方法及说明

出处:http://hanxuedog.iteye.com/blog/1299186 在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 1.字符串常量 即:位于一对双括号中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几种字符串的转变
举报原因:
原因补充:

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