将一串二进制解析为文本/字符

Sal*_*lem 1 java

我可能忽视了一些愚蠢的事情,但我从来没有在代码中处理二进制文件,并认为在加密程序中练习它是一个好主意.长话短说,我能够将字符串转换为二进制(以字符串的形式),但无法弄清楚如何反向.

现在,我有这样的事情:

public static String bytesToString(String bytes){
    int i = bytes.length()/8;
    int pos = 0;
    String result = "";
    for(int j=0; j<i; j++){
        String temp = bytes.substring(pos,pos+8);
        byte b = (byte) Integer.parseInt(temp);
        result = result + Byte.toString(b);
        pos++;
    }
    System.out.println("Result: " + result);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我认为字节被解析为文字数字.我错过了什么?编辑:为了澄清,我先前已经将一串文本解析为位并将它们写入字符串.我想将此字符串拆分为字节并将其解析为字母.需要"011010000110010101111001"并返回"嘿".

Mat*_*all 5

怎么用Integer.parseInt(text, 2)?如,

public static int binaryToInt(String binary)
{
    return Integer.parseInt(binary, 2);
}
Run Code Online (Sandbox Code Playgroud)

我不确定为什么你的binaryToString方法都采用返回一个字符串.