0

こんにちは、入力の各文字を出力する前に 7 バイトの 2 進数に変換する暗号化プログラムを作成しようとしています。私はこれに .toBinaryString メソッドを使用しているので、別の解決策を提案しないでください。私が抱えている問題は、文字列の最初の文字のみを変換することです! ここで私の試みです

public static void convert(String h)
{
    int y =0;
    String f =" ";

    for(int i =0; i<h.length(); i++)
    {
         y = (int)h.charAt(i);
        f = Integer.toBinaryString(y);
    }

    System.out.println(y);
    System.out.println(f);
}

y,f を出力して、正常に変換されているかどうかを確認します。単一の文字を入力すると機能しますが、たとえばベンを入力すると、文字ごとではなく文字列全体が変換されます!

4

2 に答える 2

4

f反復ごとに新しい文字列を割り当てているため、最後の文字が残ります。毎回既存の文字列を更新する必要があります。

したがって、次を使用します。

f += Integer.toBinaryString(y);

代わりに:

f = Integer.toBinaryString(y);

それとは別にStringBuilder、 for ループ内で文字列を操作しているため、 の使用を検討してください。

于 2013-02-11T22:16:46.077 に答える
0

ただどうですか:

String h.....
bytes[] bytesArray = h.getBytes();
于 2013-02-11T22:21:28.730 に答える