「java压缩字段长度」压缩字符串长度
今天给各位分享java压缩字段长度的知识,其中也会对压缩字符串长度进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
Java 字符串压缩与解压
给你提供个思想
首先你这不是物理上的压缩,也就是说它是一个逻辑上的我们认同上的压缩。
你需要写一个算法来对你所要处理的数据进行统计,然后按照算法来改变结果。
最后达到一个后台的虚拟压缩(实际上不是压缩,只是算法)。
java 字符串加密 加密结果的长度如何压缩
1. 可以考虑引入字符A~Z,加上0~9,形成36进制(更进一步可以大小写敏感,加上a~z,形成62进制);
2. 将上述字符串 除以36 取余;作为个位数;上述字符串 除以36 取整,作为结果,重复本步取余计算。
3. 获得结果。
4. 反向解析,将上述结果,分别按位数 乘以 36 ;
5. 最后合并相加,获得原字符串。
java如何将很长的字符串存储为压缩文件
String str = "aaaaaasssscccccdddddddwsaaasdcas"; int length = str.length(); ListInteger index = new ArrayListInteger(); for (int i = 0; i length - 1; i++) { if(str.charAt(i) != str.charAt(i + 1)){ index.add(i); } } if(str.charAt(length - 2) != str.charAt(length - 1)){ index.add(length - 1); } int start = 0; StringBuffer result = new StringBuffer(); for (int i = 0; i index.size(); i++) { int end = index.get(i) + 1; if(i != 0){ start = index.get(i - 1) + 1; } String temp = str.substring(start, end); result.append(temp.charAt(0)).append(end - start); } System.out.println(result.toString());最终结果是:a6s4c5d7w1s1a3s1d1c1a1s1
java 如何压缩文件
楼主是说解压了的文件大小只有33.1MB,但是却占了51.2MB的空间吗?
如果是这个意思的话,那我要告诉楼主,首先这个问题和JAVA没有关系,根据你的截图,可以断定你用的是FAT32文件系统。这只是文件存储的形式,很正常。
简单的说,磁盘存储数据的最小单位是簇,比方说你的簇大小为128K,一个簇只能存放一个文件,然后你的一个文件只有16K,它占了这个簇,然后还有112K没有用,是吧。但是那112K就不能再存放其它文件了。如果要存放其它文件,就要占另一个簇。
楼主,懂了吧,这跟簇的大小有关,但是也不是簇越小越好,簇越小,读写性能都有所下降。这是正常现象。如果你非觉得不舒服,那就用NTFS文件系统吧,把压缩打开,就不会有这种情况了,希望对你有帮助
用java如何实现压缩字符串?
package javase1.day02;\x0d\x0a /**\x0d\x0a * 1)一种字符串压缩算法\x0d\x0a * str ="aaaabbccccddeaaa"\x0d\x0a * 压缩为:"4a2b4c2d1e3a"\x0d\x0a * 原理实现:\x0d\x0a * str = "aaaabbccccddeaaa"\x0d\x0a * \x0d\x0a * c = str.charAt(i)//c是每个字符\x0d\x0a * 1) 初始化\x0d\x0a * StringBuilder buf = new StringBuilder();\x0d\x0a * int count = 0;代表相同的字符个数\x0d\x0a * char ch = str.charAt(0);代表正在统计的相同字符'a' \x0d\x0a * 2) 从i=1开始迭代每个字符\x0d\x0a * c = str.charAt(i);//c是每个当前字符\x0d\x0a * 3) 检查当前字符c与被统计ch是否一致\x0d\x0a * 如果一致 count++\x0d\x0a * 否则(不一致)\x0d\x0a * 向缓冲区buf增加count+ch\x0d\x0a * count=0,ch=c;\x0d\x0a * 3)没有下个字符就结束\x0d\x0a * 4)还有字符串吗?回到2)\x0d\x0a * \x0d\x0a * 2)实现还原算法\x0d\x0a * str = "4a2b4c2d1e3a";\x0d\x0a * i\x0d\x0a */\x0d\x0apublic class Demo5 {\x0d\x0a public static void main(String[] args) {\x0d\x0a String s = comp("aaaawwwwe");\x0d\x0a System.out.println(s);\x0d\x0a// System.out.println(decomp(s));\x0d\x0a \x0d\x0a }\x0d\x0a public static String comp(String str){\x0d\x0a int i = 1;\x0d\x0a StringBuilder buf = new StringBuilder();\x0d\x0a int count = 1;\x0d\x0a char ch = str.charAt(0);\x0d\x0a for(;;){\x0d\x0a char c = i==str.length() ? '\10':str.charAt(i);\x0d\x0a if(c==ch){\x0d\x0a count++;\x0d\x0a }else{\x0d\x0a if(count == 1)\x0d\x0a buf.append(ch);\x0d\x0a else \x0d\x0a buf.append(count).append(ch);\x0d\x0a count=1;\x0d\x0a ch = c;\x0d\x0a } \x0d\x0a i++;\x0d\x0a if(i==str.length()+1){\x0d\x0a break;\x0d\x0a } \x0d\x0a }\x0d\x0a return buf.toString();\x0d\x0a \x0d\x0a }\x0d\x0a}
java压缩字段长度的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于压缩字符串长度、java压缩字段长度的信息别忘了在本站进行查找喔。
发布于:2022-12-05,除非注明,否则均为
原创文章,转载请注明出处。