字符串输入到二进制输出Java

时间:2013-02-11 22:15:24

标签: java binary

大家好我正在尝试编写一个加密程序,在输出之前将输入的每个字母转换为7字节的二进制数。我正在使用.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看它是否成功转换它。它在我输入单个字符时起作用,但是当我输入例如ben时,它将转换整个字符串而不是逐个字母!

2 个答案:

答案 0 :(得分:4)

您在每次迭代时为f分配一个新字符串,因此您将留下最后一个字符。您需要每次都更新现有字符串。

所以,请使用:

f += Integer.toBinaryString(y);

取代:

f = Integer.toBinaryString(y);

除此之外,考虑使用StringBuilder,因为你在for循环中操作字符串。

答案 1 :(得分:0)

仅仅是:

String h.....
bytes[] bytesArray = h.getBytes();