如何将二进制字符串转换为文本?

时间:2015-05-31 14:18:14

标签: java string binary biginteger

我正在从事个人项目。我想创建一个加密程序,允许您使用密钥加密和解密字符串。几乎完成只需要最后部分的帮助。我想将二进制字符串转换为文本。 让我们说二进制结果(我想转换成普通文本)是:

01001000011000010110100001100001

转换成文字是"哈哈"。

注意:我只使用BigIntegers,因为我使用的几乎所有数字对于正常的整数而言都太大了。

编辑:使用此代码找到答案:

    StringBuffer output = new StringBuffer();
for (int i = 0;i < input.length();i += 8) {
  output.append((char) Integer.parseInt(input.substring(i, i + 8), 2));
}
       System.out.println(output);

1 个答案:

答案 0 :(得分:0)

此代码将在一行中执行:

String str = "01001000011000010110100001100001";

String decoded = Arrays.stream(str.split("(?<=\\G.{8})"))
    .map(s -> Integer.parseInt(s, 2))
    .map(i -> "" + Character.valueOf((char)i.intValue()))
    .collect(Collectors.joining("")); // "Haha"

它可能会变得漂亮,但我没有一个IDE方便(只是在我的手机上翻了一下)。

您注意到BigInteger并不需要,此代码处理任意长度的输入。