0

大家好,我正在尝试编写一个加密程序,在输出之前将输入的每个字母转换为 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 时,它会转换整个字符串而不是一个字母一个字母!

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 回答