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

时间:2015-03-03 15:23:34

标签: java binary ascii stringbuilder

我有一个字符串,我想将其更改为二进制,但后来在代码中我希望将其更改为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);

那我怎么得到二元&#39;回到String?显然没有输入System.out.println(s);

由于 杰

1 个答案:

答案 0 :(得分:0)

您可以使用StringBuilderbinary.toString()中提取内容,以便:

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 ...