Java 二进制串故障
嗨 我正试图编写一个程序,将用户输入的二进制文件转换成一个文本字符串。我遇到了各种各样的障碍,我可以让我的程序将“01110110”转换为“v”,但一旦我尝试了“011010011001”之类的东西,它就会给我符号,而不是单词“hi”。下面是我正在使用的源代码。 另外,感谢您帮助我们掌握JavaJava 二进制串故障,java,text,binary,Java,Text,Binary,嗨 我正试图编写一个程序,将用户输入的二进制文件转换成一个文本字符串。我遇到了各种各样的障碍,我可以让我的程序将“01110110”转换为“v”,但一旦我尝试了“011010011001”之类的东西,它就会给我符号,而不是单词“hi”。下面是我正在使用的源代码。 另外,感谢您帮助我们掌握Java import javax.swing.JOptionPane; public class Binarytotext { public static void main(String ar
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的基础知识,因此,如果我对他的代码进行的转换超出了解决问题的严格要求,可能不会有多大帮助。性能优化课程可以在以后学习。