二进制到 ASCII 字符串生成器的问题 (JAVA)

Binary to Ascii trouble with string builder (JAVA)

我有一个字符串,我想将其更改为二进制,但稍后在代码中我希望将其更改回 ascci。我该怎么做?到目前为止,这是我的代码:

String word = JOptionPane.showInputDialog("Insert word");
    String s = word;
    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;
        }
        binary.append(' ');
    }
    System.out.println("'" + s + "' to binary: " + binary);

那么我怎样才能让 'binary' 回到 String 呢?显然只是输入 System.out.println(s);

谢谢 周杰伦

您可以使用 binary.toString()StringBuilder 中提取内容,因此:

String text = binary.toString();

接下来需要处理二进制内容

您首先将字符串拆分为单词:

String[] byts = text.split(" ",-1);

接下来迭代表示字节的 String 并将它们转换为实际字节和字符:

int n = byts.length;
StringBuilder result = new StringBuilder();
for(int i = 0; i < n; i++) {
    byte dat = 0;
    String byi = byts[i];
    for (int j = 0; j < byi.length(); j++){
        char byij = byi.charAt(j);
        dat <<= 0x01;
        if(byij != '0') {
            dat |= 0x01;
        }
    }
    result.append((char) dat);
}

请参阅此 jDoodle 以获取工作示例...