0 0

如何实现aaabbbsdd转换成3a3bs2d0

如何实现aaabbbsdd转换成3a3bs2d
我刚开始的思路是用正则表达式
先切割然后替换,可是写不出来。
希望大家能写出来参考一下、谢谢。或者给个伪代码。
2013年4月29日 12:48

3个答案 按时间排序 按投票排序

0 0

采纳的答案

public class StringZip {

	public static void main(String[] args) {

		StringBuilder sb = new StringBuilder();
		Stack stack = new Stack();

		for (char c : "aaabbbsdd".toCharArray()) {
			stack.push(c, sb);
		}
		stack.append(sb);

		System.out.println(sb);
	}

	static class Stack {

		private int count = 1;
		private Character chr;

		public void push(char c, StringBuilder sb) {

			// 初次。
			if (chr == null) {
				chr = c;
				return;
			}

			// 相同则+1。
			if (chr == c) {
				count++;
				return;
			}

			// 不同则输出。
			append(sb);

			// 重置。
			chr = c;
			count = 1;
		}

		public void append(StringBuilder sb) {
			if (count > 1) {
				sb.append(count);
			}
			sb.append(chr);
		}
	}
}

2013年4月29日 15:33
0 0

1、转换字符串为字符数组循环。
2、设置计数单位变量 i,设置待比较字符变量 c;
3、循环字符数组,取当前字符c,循环比较,如果和下一个相同,计数变量i加1,否则清零重新计数;

2013年5月01日 00:17
0 0

public static void main(String[] args) {
		char[] chars = "aaabbbsdd".toCharArray();
		StringBuilder s = new StringBuilder();
		
		int count = 0;
		for(int i = 0, l = chars.length; i < l; i++) {
			char ch = chars[i];
			
			//如果不是最后一个 判断当前的 是否和下一个匹配 如果匹配count+1 继续下一轮
			if( i + 1 < l && chars[i+1] == ch) {
				count++;
				continue;
			}
			
			//如果是最后一个 判断最后一个 是否和前一个匹配 如果匹配count+1 
			if(i + 1 == l && chars[i - 1] == ch) {
				count++;
			}
			
			s.append(ch);
			if(count > 1) {
				s.append(count);
			}
			count = 0;
		}
		
		System.out.println(s.toString());
		
		
		
	}

2013年4月29日 13:08

相关推荐

    ICE3BS03LJG 英飞凌芯片 INFINEON 中文版规格书手册.pdf

    ICE3BS03LJG 英飞凌芯片 INFINEON 中文版规格书手册 ICE3BS03LJG 是一款 Off-Line SMPS(Switch Mode Power Supply)当前模式控制器,集成了 500V 启动单元(Latched and frequency jitter Mode)。本文档将对 ICE...

    SDJ-3BS振动仪表手册.doc

    SDJ-3BS振动仪表手册doc,SDJ-3BS振动仪表手册

    $RGIC3BS_非3_

    标题中的"$RGIC3BS_非3_"似乎是一种编码或者标识符,可能代表某个特定的项目、任务或者软件版本,但具体的含义没有直接关联到IT知识点。描述中的内容"实现的是从网络上下子安静的,你的捂被窝,UI而非回复氛围,UI为...

    SDJ-3BS SDJ-3LS振动仪表手册.doc

    SDJ-3BS SDJ-3LS振动仪表手册doc,SDJ-3BS SDJ-3LS振动仪表手册

    基于ICE2QS03G芯片准谐振反激电源设计.pdf

    MOS管作为主功率器件,通过PWM波控制其通断,将输入的直流电转换成高频脉冲电。在选择MOS管时,需要确保其具有足够的安全裕度以保证在正常工作条件下器件不会损坏。文中提到了使用耐压800V、通电流6A的MOS管,型号为...

    smc-薄型电气比例阀ITV0000.pdf

    smc-薄型电气比例阀ITV0000pdf,smc薄型电气比例阀,ITV0000系列ITV0030-0S ...smc薄型电气比例阀 ITV0030-3BS-Q smc薄型电气比例阀 ITV0030-3L 如果需要了解更多,请点击http://smcchina.gongboshi.com

    面向中等功率应用的AC/DC功率管理IC

    通过这种方式,ICE3BS03LJG成功实现了在保持高效能量转换的同时,降低对周围环境的干扰。 除了电磁干扰和待机功耗方面的优势之外,ICE3BS03LJG还具备了过温保护、VCC过压保护、线圈短路保护和开环保护等多项安全...

    lewis_3cd_01_0716.pdf

    此外,技术可行性分析部分提到了相关的技术文档和在七月会议上计划的展示,如traverso_3cd_01_0716、mazzini_02a_1215_smf、tipper_3bs_01a_0515、way_3bs_01_0515、welch_3bs_02a_0115等,这些均是重要的技术参考...

    ofelt_3cd_01_0716.pdf

    PreFEC BER监测功能与传统的前向纠错(FEC)技术结合后,能够实现对链路质量的实时监控和分析。当FEC检测到符号错误率超过阈值时,会发出降级信号,与此同时,流量保持不受影响,确保了网络的稳定性和可靠性。 在...

    hegde_3cd_01_0716.pdf

    在芯片对芯片(Chip-to-Chip)连接中,预编码器在电气接收端终止,并可以通过管理接口启用,这一过程已在Hegde_3bs_01a_1115中展示。在背板/直接连接电缆的应用中,预编码作为远端发射器调谐协议的一部分被启用,这...

    BS8112A-3 BS8116A-3 I2C IO模拟程序

    I2C协议由荷兰飞利浦公司(现为NXP半导体)于1982年推出,它只需要两根线(SCL和SDA)就能实现双向通信。SCL是时钟线,由主设备控制,确保所有设备在同一时间点上进行数据传输;SDA是数据线,主从设备都可以在这条...

    基于模糊控制的机器人运动控制系统设计.pdf

    无线遥控硬件电路采用南京视听电子公rd的RO3BS尤线遥控器,其主要包含发送模块和接收模块。该无线遥控器分为网络遥控器,信号的输出可以是路也町为双路,电路的工作频率为31OMHz,最大的遥控距离为90M。 本文设计了...

    最新功率控制芯片

    - **简单应用电路**: 由于ICE3BS03LJG集成了所有必要的特性和功能,因此只需要少量的外部组件(如电容和电阻)即可实现完整的电源控制功能。 - **60W, 16V/3.75A应用实例**: - 待机功耗极低:在无负载情况下,待机...

    IEEE802.3dj-800GBASE FR4-welch-3dj-01a-2401 .pdf

    本意见稿详细阐述了实现这一目标所需的技术方案与测试指标。 #### 二、参与者和支持者 本提案由多位来自不同公司的专家共同参与制定,包括但不限于: - **Brian Welch (Cisco)** - **John Johnson (Broadcom)** - ...

    室内外天馈EMC设计标准电路.pdf

    4. **元器件选择与配置**:文档中列举了多种特定型号的元器件,如L210uH电感、D2BV二极管、CD3BS0060M电容器等,这些元器件在EMC设计中起到滤波、钳位电压、保护电路的作用。正确选择和配置这些元器件对于实现有效...

    anslow_3cd_01_0716.pdf

    预编码的实现方式如下所示,0到3 0到3 0到3切片。Gray编码+4通道调制+Gray编码+DFE̶T T预编码。预编码的移除参见parthasarathy_01_0911第5页的工作示例。这个预编码过程的一个“特点”是,在切片输出端产生的一个...

    4~16v可调开关电源

    - 选取**磁芯材料和磁芯结构**:选择R2KB铁氧体材料制成的EE型铁氧体磁芯,因其具有品种多、引线空间大、接线操作方便且价格便宜等优点。 - 确定**工作磁感应强度Bm**:考虑到高温时Bs会下降以及防止合闸瞬间高频...

    sun_3cd_01_0118.pdf

    这样做的目的是帮助筛选出病态发射器,减轻接收器不必要的负担,实现低功耗模块的设计,并保证互操作性。 接着,文档讨论了TDECQ的测量结果。在IEEE 802.3bs项目的历史背景下,TDECQ参考接收器从5抽头T/2间隔的FFE...

    pachong_爬虫入门_

    “3BSʵס.py”可能涉及BeautifulSoup的实战应用。在实际爬虫项目中,我们往往需要处理JavaScript动态加载的内容。BeautifulSoup无法解析这些,但我们可以借助Selenium库模拟浏览器行为,加载完整页面。Selenium允许...

Global site tag (gtag.js) - Google Analytics