码迷,mamicode.com
首页 > 其他好文 > 详细

字符串转换:字符串中的'aa'转换成'bb',但是如果是'a'、'aaa'等,则不进行转换

时间:2014-11-27 00:08:26      阅读:388      评论:0      收藏:0      [点我收藏+]

标签:blog   ar   sp   java   for   div   log   bs   代码   

代码:

public void transferString(String str) {
    //0.条件初始化
    char[] cArr = str.toCharArray();    //将字符串转为字符数组处理
    char[] flagArr = new char[cArr.length]; //字符数组标记,判断是否转换
    for(int i = 0; i < flagArr.length; i++) { //字符数组初始为0
        flagArr[i] = ‘0‘;
    }
     
    //1.循环遍历数组,每次处理一个或者一段字符串。
    for(int i = 0; i < cArr.length - 1; ) {   
        //默认处理两个,如果不满足‘aa‘,则处理第一个,如果满足,则处理下面的一段字符   
        int len = 2;
        boolean flag = true; //判断处理标识,为true表示转为b,为false表示不转
        char a = cArr[i];
        char b = cArr[i+1];
        //判断处理
        if(a == ‘a‘ && b == ‘a‘) {
            //第一个和第二个都是a,判断后面的
            int j = i + 2;
            while(true) {
                if(j == cArr.length) { //如果已经是最后两个字符,不再处理
                    break;
                }
                if(cArr[j] == ‘a‘) {//如果后面的也是‘a‘,则不进行转换
                    len += 1;
                    j++;
                    flag = false; //修改标记
                } else {
                    break;
                }
            }
            //处理数组标记
            for(int k = i; k < i + len; k++) {
                if(flag) {
                    flagArr[k] = ‘1‘;
                } else {
                    flagArr[k] = ‘0‘;
                }
            }
            i += len; //修改下标,处理下一段字符串
        } else {
            flagArr[i] = ‘0‘;
            flag = false;
            i++;
            //如果是倒数第2元素
            if(i == (cArr.length - 1)) {
                if(flag) {
                    flagArr[flagArr.length - 1] = ‘1‘;
                }
            }
        }
         
    }
     
    //对标记数组遍历,转换字符
    for(int m = 0; m < flagArr.length; m++){
        if(flagArr[m] == ‘1‘) {
            cArr[m] = ‘b‘;
        }
    }
     
    //打印,查看结果
    System.out.println(str);
    for(char c : cArr) {
        System.out.print(c);
    }
}

 

字符串转换:字符串中的'aa'转换成'bb',但是如果是'a'、'aaa'等,则不进行转换

标签:blog   ar   sp   java   for   div   log   bs   代码   

原文地址:http://www.cnblogs.com/longchaoqun/p/4125291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!