【发布时间】:2013-04-28 17:02:54
【问题描述】:
我现在正在做 Huffman Coding,但我在路上遇到了这个颠簸。除了这一部分,我几乎完成了所有工作。我现在的主要问题是我不确定如何存储使用我的代码编码的 0 和 1 的二进制字符串。我试着正常写出来,但文件大小最终比我编码的原始文本文件大得多。有人可以告诉我应该如何存储我的二进制字符串,以免发生这种情况。
更新 我注意到当我尝试将其转换为 char 并最终被打印为 ?s 时,很多 char 都无法识别
String u = scanner.nextLine();
char l;
for(int b = 0;b<u.length();b++)
{
l = u.charAt(b);
int c = (int) u.charAt(b);
String p = Integer.toBinaryString(c);
if(b!= u.length()-1)
{
while(p.length()!=8){
p = "0" + p;
//Thread.sleep(3000);
}
}System.out.println(p);
k.append(p);
它在 ?并打印出 00111111。有人对我如何解决这个问题有任何建议吗?
【问题讨论】:
-
为什么不将 0 和 1 存储为二进制而不是文本的 0 和 1?如果你想进一步压缩这些,你可以使用内置压缩,它也使用霍夫曼编码和算术编码
标签: java binary compression huffman-code