我正在从事个人项目。我想创建一个加密程序,允许您使用密钥加密和解密字符串。几乎完成只需要最后部分的帮助。我想将二进制字符串转换为文本。 让我们说二进制结果(我想转换成普通文本)是:
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);
答案 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
并不需要,此代码处理任意长度的输入。