Binary to String麻烦

时间:2011-03-28 04:20:49

标签: java text binary

您好 我正在尝试编写一个程序,将用户输入的二进制文件转换为一串文本。我遇到了各种障碍,我可以让我的程序将“01110110”转换为“v”但是一旦我尝试了类似“0110100001101001”的东西,它就会给我符号而不是“hi”这个词。以下是我正在使用的源代码。 P.s感谢您帮助我们继续尝试掌握Java。

import javax.swing.JOptionPane;




public class Binarytotext
{
    public static void main(String arg[])
    {

            String b = JOptionPane.showInputDialog(null,"Enter binary");
            int charCode = Integer.parseInt(b,2);
            String k = new Character((char)charCode).toString();
            JOptionPane.showMessageDialog(null,k);

    }

}

3 个答案:

答案 0 :(得分:3)

您正在将16 0和1的整个序列转换为单个整数。您需要先将其拆分为8个字符的子串(每个8位是一个字节,每个字节是一个ASCII字符)。

答案 1 :(得分:1)

如果你的字符串中有超过8位,你需要将其分解并分别解析每个8位段,如:

int charCode;
String k = "";
String b = JOptionPane.showInputDialog(null,"Enter binary");
while (b.length > 8) {
    charCode = Integer.parseInt(b.substring(0, 8),2);
    k += new Character((char)charCode).toString();
    b = b.substring(8);
}
if (b.length() > 0) {
    //attempt handle any trailing bits that might be left
    charCode = Integer.parseInt(b,2);
    k += new Character((char)charCode).toString();
}

JOptionPane.showMessageDialog(null,k);

答案 2 :(得分:0)

String input = JOptionPane.showInputDialog(null, "Enter binary");
String out = "";
while (input.length() >= 8) {
    out += (char) Integer.parseInt(input.substring(0, 8), 2);
    input = input.substring(8);
}
JOptionPane.showMessageDialog(null, out);