3

重複の可能性:
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);
4

2 に答える 2

2

バイナリを整数に変換します。

String binary = "010101";    
int ascii = Integer.parseInt(binary, 2);

次に、整数を ascii に変換します。

char character = (char)ascii;
于 2012-10-19T01:01:36.003 に答える
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("")) {

いずれかの変換を開始する前に、テキスト ボックス内の内容を必ずクリアしてください。

于 2012-10-19T02:14:41.210 に答える