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

代码:

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'等,则不进行转换

时间: 2024-12-28 11:44:44

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

转换字符串中汉字为其拼音缩写(C#)

第一种方法 转换字符串中汉字为其拼音缩写(C#) //将指定字符串中的汉字转换为拼音缩写,其中非汉字保留为原字符.    public string GetPinYin(string text)   {    char pinyin;    byte[] array;    System.Text.StringBuilder sb = new System.Text.StringBuilder(text.Length); foreach(char c in text)    {     piny

javaScript 中创建json/转换字符串为json

在js 中创建创建json 对象: 1.直接定义json 对象 var employees = [ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thom

在LoadRunner中转换字符串大小写的C语言函数

在LoadRunner中转换字符串大小写的C语言函数 . loadrunner语言ccharacterstringaction 封装ConvertToXXX函数: //ConvertToUpper function int ConvertToUpper(char * sInput, char * sNew) { sInput = (char *)strupr(sInput); lr_save_string(sInput,sNew); } //ConvertToLower function int

Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty

原文:Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty public class NullToEmptyStringResolver : DefaultContractResolver { /// <summary> /// 创建属性 /// </summary> /// <param name="type">类型</param> /// <param name="

JAVASCRIPT 转换字符串杂记

Number()遇到null会转换为0,遇到underfind会转换为NaN. 一般整数用parseInt()方法,遇到空会转换成NaN.(注意差别)该方法可设置第二个参数 parseInt("要转换字符串",几进制).遇到小数点会停止解析,后面忽略. parseFloat()也是从第一个字符开始解析,直到末尾或者遇见一个无效的浮点数字字符(第二个小数点)为止.十六进制字符串始终被解释为0,只解析十进制,没有第二个参数. toString()方法可以直接调用不需要输入参数,在调用数值的

JavaScript----数字转换字符串&amp;字符串转发数字

数字转换成字符串 1.toString()函数 var num=12345; var s=num.toString(); function changetostr(num){ return num.toString(); } 2.利用js的弱类型特点 var num=123; var s=num+""; 字符串转换成数字 1.转换函数 JavaScript提供了parseInt()与parseFloat()函数 注:只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型

sql 表值函数-将一个传入的字符串用2中分隔符拆分成临时表

USE [tms]GO/****** Object: UserDefinedFunction [dbo].[fn_StrToTable_Double] Script Date: 2017/4/26 9:07:38 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: HXQ-- Create date: 2016年8月9日18:0

Java 带分隔字符串、字符串数组和 ArrayList&lt;String&gt; 之间的转换

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 一.先来认识一下标题说的这三件东西,也许描述的不清楚,但有了下面的例子,就不会有歧义了 1.带分隔字符串是这样的: String seperate

(数字类型,进制转换,字符串,列表)介绍和操作

数字类型 整型 用途:记录年龄.等级.号码等 定义方式如 age = 18 本质 # age = int(18) 整型只能存一个值而且是不可变类型 int()方法能将字符串转为整型 需要注意的是使用int只能转纯数字的字符串,有小数点也不行 浮点型 用途:记录身高.体重.薪资等 定义方式如 height= 185.1 本质 # height= float(185.1) 浮点型只能存一个值而且是不可变类型 float()方法能将字符串和整型转为浮点型 需要注意的是使用float方法只能转纯数字的字