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振动仪表手册

    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过压保护、线圈短路保护和开环保护等多项安全...

    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设计中起到滤波、钳位电压、保护电路的作用。正确选择和配置这些元器件对于实现有效...

    4~16v可调开关电源

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

    pachong_爬虫入门_

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

    caoxueliang

    压缩包子文件的文件名"Breeze&_39%3Bs%20MH.exe"看起来像是一个Windows可执行文件,但没有足够的上下文来解释它的用途或关联的技术细节。 通常,如果文件名包含"exe",这通常指的是Windows操作系统中的可执行程序,...

    麻醉咽喉镜使用说明书A.pdf

    为了提供详细的知识点,我会将这些信息组合成以下几个方面: 一、麻醉咽喉镜的组成部分 1. 光源组件:包含了11mLx的照明亮度,1500-3500lx的照明范围,以及3V的直流电源供应,这表明该设备使用电池作为电源。 2. ...

    2013届高考英语维“升”素35 医学常识(阅读理解)

    有的机构将急救优先级概括为“3Bs”:Breathing(呼吸)、Bleeding(出血)和Bones(骨折)。在某些情况下,如遇到无呼吸、无脉搏的患者,可能需要同时进行心肺复苏(CPR)和胸部按压。\n\n这段阅读理解的难点可能...

    Haier海尔家用燃气灶JZT-QE3B(12T)使用说明书用户手册图解图示pdf电子版下载.pdf

    - 不锈钢或钢化玻璃灶面:不同系列的燃气灶采用不同的材质,Q60E和QE3G系列采用不锈钢灶面,Q63E、QE3B、QE3BS1系列则采用钢化玻璃,具有耐高温、易清洁的特点。 - 燃烧器设计:部分系列如QE3B提供直火和旋火两种...

    smc-5.0MPa对应 高压电气比例阀ITVX2000.pdf

    ITV0030-3BS-Q ITV0030-3L ITV0030-3ML ITV0030-3MS ITV00303MSDIL00 ITV0030-3N ITV0030-3S ITV0031-2L ITV0050-0CS ITV0050-0L ITV0050-0ML ITV0050-1L ITV0050-1ML ITV0050-2L ITV0050-2ML ITV0050-3L ITV0050-3...

Global site tag (gtag.js) - Google Analytics