Java 二进制串故障

Java 二进制串故障,java,text,binary,Java,Text,Binary,嗨 我正试图编写一个程序,将用户输入的二进制文件转换成一个文本字符串。我遇到了各种各样的障碍,我可以让我的程序将“01110110”转换为“v”,但一旦我尝试了“011010011001”之类的东西,它就会给我符号,而不是单词“hi”。下面是我正在使用的源代码。 另外,感谢您帮助我们掌握Java import javax.swing.JOptionPane; public class Binarytotext { public static void main(String ar

嗨 我正试图编写一个程序,将用户输入的二进制文件转换成一个文本字符串。我遇到了各种各样的障碍,我可以让我的程序将“01110110”转换为“v”,但一旦我尝试了“011010011001”之类的东西,它就会给我符号,而不是单词“hi”。下面是我正在使用的源代码。 另外,感谢您帮助我们掌握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);

    }

}

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

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

如果字符串中包含超过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);

如果字符串中的位超过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);

谢谢你,我的问题的固定部分,现在只是想弄清楚如何让我的程序接受空格而不会在我面前爆炸。谢谢你,我的问题的固定部分,现在只是想弄清楚如何让我的程序接受空格而不会在我面前爆炸。很好的工作解决方案,但我不能对此进行升级,因为您在循环中使用字符串连接,这是最终的解决方案evil@Sean-仅当处理大型字符串或大量循环迭代时。对于这样一个简单的例子,没有实际的区别。此外,OP正在尝试学习Java的基础知识,因此,如果我对他的代码进行的转换超出了解决问题的严格要求,可能不会有多大帮助。性能优化课程可以稍后再上。这是一个很好的解决方案,但我不能对此进行升级,因为您在循环中使用字符串连接,这是最终的解决方案evil@Sean-仅当处理大型字符串或大量循环迭代时。对于这样一个简单的例子,没有实际的区别。此外,OP正在尝试学习Java的基础知识,因此,如果我对他的代码进行的转换超出了解决问题的严格要求,可能不会有多大帮助。性能优化课程可以在以后学习。