1、字符串转化(压缩) “aabbccdaa” -> "a2b2c2d1a2"

public class Test {
public static String stringCompress(String str) {
char[] arr = str.toCharArray(); //将字符串转换为字符数组
StringBuilder arr1 = new StringBuilder(); //新建一个直接累加的数组
int count = 1; //定义一个计数器,用来计算重复字符的个数
arr1.append(arr[0]);
char temp = arr[0];
for (int j = 1; j < arr.length; j++) { //遍历字符数组
if(temp == arr[j]){ //判断数组arr当前对象与比较目标temp是否相等
count++; //相等计数器加一
}
else{ //数组arr当前对象与比较目标temp不相等
arr1.append((char)(count + ‘0’)); //数组arr1下一位存储上一元素的个数
arr1.append(arr[j]); //将新的比较目标存入arr1
temp = arr[j]; //更新比较目标temp的值
count = 1; //计数器置1,,用来计算新的比较目标temp的值
}
}
arr1.append((char)(count + ‘0’));
String str1 = new String(arr1); //将字符数组转换为字符串
return str1; }
public static void main(String[] args)
{
System.out.println(stringCompress(“aabbccdaa”));
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值