Java实现的一个简单的字符串压缩算法源码
2019-02-05 15:22
537 查看
将做工程过程经常用到的一些代码珍藏起来,如下的代码是关于Java实现的一个简单的字符串压缩算法的代码,希望能对各朋友也有用。
public class Contraction { public static String tempString = "acdesfghsadajfkqsfab"; public static void main(String[] args) { System.out.println("压缩前字符串内容:"+tempString); System.out.println("压缩前字符串大小:"+tempString.length()); String resultString = compactString(tempString); System.out.println("压缩后字符串内容:"+resultString); System.out.println("压缩后字符串大小:"+resultString.length()); String convertString = decompressionString(resultString); System.out.println("解压后字符串内容:"+convertString); System.out.println("解压后字符串大小:"+convertString.length()); } public static String decompressionString(String tempString){ char[] tempBytes = tempString.toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < tempBytes.length; i++) { char c = tempBytes; char firstCharacter = (char) (c >>> 8); char secondCharacter = (char) ((byte)c); sb.append(firstCharacter); if(secondCharacter != 0) sb.append(secondCharacter); } return sb.toString(); } public static String compactString(String tempString) { StringBuffer sb = new StringBuffer(); byte[] tempBytes = tempString.getBytes(); for (int i = 0; i < tempBytes.length; i+=2) { char firstCharacter = (char)tempBytes; char secondCharacter = 0; if(i+1<tempBytes.length) secondCharacter = (char)tempBytes[i+1]; firstCharacter <<= 8; sb.append((char)(firstCharacter+secondCharacter)); } return sb.toString(); } }
相关文章推荐
- 用java编写一个简单的字符串加密解密程序,将字符串分成若干行,实现字符串以一列一列读取,并还原之前输入的字符串。这里实现4行输出。
- 【Java】编写一个方法,实现基本的字符串压缩功能
- java实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩
- (转)发布一个Java写的俄罗斯方块源码 算法简单(300行) 注释详细
- 实现简易字符串压缩算法:一个长度最大为128的字符串, 由字母a-z或者A-Z组成,将其中连续出现2次以上(含2次)的字母转换为字母和出现次数,以达到压缩目的
- Python实现一些简单的算法(4)—将一个字符串转成驼峰数
- 【Java,面试】实现一个算法,确定一个字符串的所有字符是否全都不同
- 【技术收藏】enpaodelvzi编写:一个Java写的俄罗斯方块源码 算法简单(300行) 注释详细
- java笔试题:用java实现字符串压缩算法
- java实现的LZW 压缩算法源码
- 发布一个Java写的俄罗斯方块源码 算法简单(300行) 注释详细
- 每天一个数据结构——三种简单排序算法及Java实现
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 发布一个Java写的俄罗斯方块源码 算法简单(300行) 注释详细
- 用java实现简单的网络通信,相当于一个最简单的控制台qq(附代码) 推荐
- java一个算法题:输出一个字符串中出现次数最多的字符,以及次数
- 一个java实现的简单日历,采用左树右列表的方式实现,具有参考意义
- 利用java实现一个简单的远程监控程序
- 一个简单的Java计算器实现
- 一个简单最大正向匹配(Maximum Matching)MM中文分词算法的实现