编程实现统计连续重复字符的数量

package com.example.demo.reflact;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
import java.util.TreeMap;

public class A {
    public static void main(String[] args) {
        //// 编程实现统计连续重复字符的数量。
        //// 例如:输入一个字符串“bbb2aaccbycza”,输出为“b32a2c2bycza”

        String str ="bbb2aaccbycza";
        // 利用StringBuffer变量字符串接受结果
        StringBuffer sb = new StringBuffer();

        char element = str.charAt(0);
        int count=1;
        for(int i=1;i<str.length();i++) {
            if(element==str.charAt(i)) {
                count++;
            }else {
                //当读到另一个不一样的字符的时候,再拼接之前统计的字符
                sb.append(element);
                //如果统计数量为1的时候不输出统计数量
                sb.append(count==1 ? "" :count);
                element = str.charAt(i);
                count=1;
            }
        }
        // 保证当最后一个字符和统计的数量都拼接上
        sb.append(element);
        sb.append(count==1 ? "" :count);
        System.out.println(sb);
    }
}

 

posted @ 2022-08-27 21:25  不死码农  阅读(86)  评论(0编辑  收藏  举报