从二进制转换回Java中的字符串值

时间:2012-01-23 23:24:03

标签: java string binary

目前,我有一个值为“0100100001101001”的字符串(这是单词'Hi'的二进制)。我正在试图找出如何取出该字符串并将其转换回单词“Hi”

我用过

String s = "Hi";   
byte[] bytes = s.getBytes();   
StringBuilder binary = new StringBuilder();   
for (byte b : bytes)   
{      
    int val = b;      
    for (int i = 0; i < 8; i++)      
    {         
        binary.append((val & 128) == 0 ? 0 : 1);         
        val <<= 1;      
    }         
}   
s = binary.toString();

发现于: Convert A String (like testing123) To Binary In Java

非常感谢任何帮助。提前谢谢。

2 个答案:

答案 0 :(得分:2)

像...这样的东西。

BigInteger val = new BigInteger("0100100001101001", 2);
String hi = new String(val.toByteArray());

答案 1 :(得分:1)

另一种解决方案,多种多样。使用(char)投射。将s作为二进制String

String result = "";
for (int i = 0; i < s.length(); i += 8) {
    result += (char) Integer.parseInt(s.substring(i, i + 8), 2);
}