实现一个字符串的压缩功能

如题:

写一个函数,实现对字符串的压缩

String cypte(String data){}

例如:

cypte("AABBBCCCCDDDDAAAAAJJJJJ")返回2A3B4C4D5A5J

cypte("xxxxxxxyyyyyyyyyyyyyykkk")返回7x14y3k

cypte("ABBBDDGGHHHH")返回A3B2D2G4H

 

我这里有一个参考实现,希望各位拍砖

static void cypte(String s){
		StringBuilder sb=new StringBuilder();
		int l=s.length();
		char t=' ';
		if(l==1){
			System.out.println(s);
		}else{
			for(int i=0;i<l;){
				int k=i+1;
				int c=1;
				
				while(k<l&&(s.charAt(i)==s.charAt(k))){
					t=s.charAt(i);
					c++;
					k++;
				}
                                if(k==i+1){
					t=s.charAt(i);
				}
				i+=c;
				if(c==1){
					sb.append(t);
				}else{
					sb.append(c).append(t);
				}
			}
			System.out.println("压缩结果为\t"+sb);
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值