大家好我正在尝试编写一个加密程序,在输出之前将输入的每个字母转换为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时,它将转换整个字符串而不是逐个字母!
答案 0 :(得分:4)
您在每次迭代时为f
分配一个新字符串,因此您将留下最后一个字符。您需要每次都更新现有字符串。
所以,请使用:
f += Integer.toBinaryString(y);
取代:
f = Integer.toBinaryString(y);
除此之外,考虑使用StringBuilder
,因为你在for循环中操作字符串。
答案 1 :(得分:0)
仅仅是:
String h.....
bytes[] bytesArray = h.getBytes();