可能重复:
Binary to text in Java
我正在编写一个可以转换多个内容的程序,但我需要帮助转换二进制文件。我有我的文本到二进制工作的代码,但我不确定二进制到文本。这是触发转换的按钮的代码:
String code = jTextArea5.getText();
if (code == null) {
System.out.println(jTextArea1.getText( ));
String writing = jTextArea1.getText();
byte[] bytes = writing.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(' ');
}
jTextArea5.setText("" + binary);
}
else
{
System.out.println(jTextArea1.getText( ));
String binary = jTextArea1.getText();
int ascii = Integer.parseInt(binary, 2);
char character = (char)ascii;
jTextArea5.setText("" + character);
}
如果有人知道如何修复此代码,那就太好了。谢谢!
注意 - 下面这个位本身就可以使用,只是不允许将jTextArea5中的二进制文件转换为jTextArea1中的文本。
System.out.println(jTextArea1.getText( ));
String writing = jTextArea1.getText();
byte[] bytes = writing.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(' ');
}
jTextArea5.setText("" + binary);
答案 0 :(得分:2)
将二进制转换为整数:
String binary = "010101";
int ascii = Integer.parseInt(binary, 2);
然后将整数转换为ascii:
char character = (char)ascii;
答案 1 :(得分:1)
交换5和1左右,以便从正确的文本框中抓取二进制文件。
并使用StringTokenizer处理每个8的块
别忘了导入StringTokenizer
else
{
System.out.println(jTextArea5.getText( ));
String binary = jTextArea5.getText();
StringTokenizer st = new StringTokenizer(binary," ");
while(st.hasMoreTokens()){
int ascii = Integer.parseInt(st.nextToken(), 2);
char character = (char)ascii;
jTextArea1.setText(jTextArea1.getText() + "" + character);
}
}
这个位检查jTextArea5.getText()
中的内容if (code == null) {
将其更改为
if (code.equals("")) {
并确保在开始转换之前清除文本框中的内容