如何实现aaabbbsdd转换成3a3bs2d

问题描述

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

解决方案

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);}}}
解决方案二:
1、转换字符串为字符数组循环。2、设置计数单位变量 i,设置待比较字符变量 c;3、循环字符数组,取当前字符c,循环比较,如果和下一个相同,计数变量i加1,否则清零重新计数;
解决方案三:
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());}

时间: 2024-11-03 00:30:09

如何实现aaabbbsdd转换成3a3bs2d的相关文章

asp.net.想要实现一个文字字符串转换成MP3和wav格式的语音

问题描述 asp.net.想要实现一个文字字符串转换成MP3和wav格式的语音 2C 文字字符串转换成MP3和wav格式的语音文件并且存入数据库,请问如何实现.需要转换成音频文件后可以读出文字内容 解决方案 你需要一个与字符对应的音频库,就像电子琴.比如1对应声音多,2对应声音来,3对应声音咪--,还有长音,短音,4分,8分等等,当你输入一个字符串时,找到跟他对应的声音,就能实现准确的转换了.

格式 webp-谷歌的webp图片格式如何在windows下使用java转换成其他格式

问题描述 谷歌的webp图片格式如何在windows下使用java转换成其他格式 参考了http://blog.csdn.net/geeklei/article/details/41147479,可以在linux下成功执行,但是在windows下编译出dll和jar始终无法正确运行java.lang.IllegalArgumentException: image == null!无法识别这样的图片格式 解决方案 Java webp转jpg webp是最近google推出的新的图片格式 googl

excel数据-excel中使用kutools将图片从tif转换成jpg格式后图片序列改变了,怎么破?

问题描述 excel中使用kutools将图片从tif转换成jpg格式后图片序列改变了,怎么破? 办公时excel中有大量的图片需要从tif转成jpg格式,使用kutools可以迅速直接转换格式,但是导回excel中时图片顺序发生改变. 是否有什么编程语言或者改变转换图片格式的软件也可以,解决这个问题? 非常感谢!

MathType转换成pdf符号丢失或乱码怎么办

  MathType转换成pdf符号丢失或乱码怎么办?这个问题的出现主要还字体的问题,电脑字体无法识别MathType字体所以在转换的时候会出现这个上问题. 具体解决方法如下: 1.打开电脑,按照MathType的安装路径找到其安装目录,这个由于每个人的安装路径不一样,所以操作会有所差别,在MathType的安装目录下找到MathType里面的True Type文件,将里面字体复制. 复制MathType里面的True Type字体文件 2.然后回到C:\Windows\Fonts中直接将之粘贴

如何将PPT转换成Word?

  1.打开你要转换成word的PPT   2.然后把所有PPT用ctrl + a 全选 3.然后依次打开"文件"--"发送"--"Microsoft Office Word" 4.打开"发送到Microsoft Office Word"对话框后,勾选上"只使用大纲"选项,单击确定即可 5.接下来PPT会自动转换成word文件,你稍微整理一下就OK了.

将多个路径字符串转换成XML文档树

假设有下面的字符串: ? 1 2 3 4 5 6 7 /home/usr/abc/def/文本.txt /home/usr/desktop/音乐.mp3 /etc/init.d/mysql/mysql /etc/profile /tmp/垃圾.tmp /usr/bin/open-jdk7/java ... 给定一个根节点名字root和叶子节点名字leaf,如何将它们转换成一颗像下面这样的XML文档树呢? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Word 2010的公式如何转换成MathType公式

  Word 2010的公式如何转换成MathType公式?下面就来介绍Word公式转换成MathType公式的操作方法. 由于现在大部分的电脑系统都是64位系统,这个问题就是出现在64位操作系统,32位office 2010上 . 此系统下office 2010的文件夹是 C:\Program Files (x86)\Microsoft Office\Office14 ,注意这个是64位系统中32位应用的目录,如果是2007的话,是在Office12中. 使用Mathtype自带的Conver

android中String转换成16进制的方法

问题描述 android中String转换成16进制的方法 想请教一下?把一个24个字节的字符串转换成16进制,并把结果打印出来要怎么写,网上有一些方法但是没有说转换完的16进制串打印出来要用哪个参数?求指点 解决方案 byte[] b = ""字符串"".getBytes();foreach (byte i : b){if (i < 16) System.out.print(""0"" + Integer.toHexS

[经典面试题]将字符串里的小写字母转换成大写的。 要求不通过比较

[题目] 将字符串里的小写字母转换成大写的. 要求不通过比较 --------腾讯校招 [思路] a~z的ascii码:97~122 也就是:1100001~1111010 A~Z的ascii码:65~90 也就是: 1000001~1011010 通过判断从低位数第五位是否是0,1而得到是小写字母还是大写字母 [代码] /********************************* * 日期:2014-11-21 * 作者:SJF0115 * 题目: 将字符串里的小写字母转换成大写的.