gpt4 book ai didi

java - 十六进制到二进制字符串Java

转载 作者:行者123 更新时间:2023-11-29 09:29:51 24 4
gpt4 key购买 nike

我现在正在加密,在第 7 步,我需要将 HEX 字符串数组(我已将其从 ASCII 转换为字符串数组)转换为二进制字符串。

public static void main(String[] args)  { 
System.out.println("HEX to Binary: ");
String[] stringHextoBinary = new String[HS.length]; //HS is the String Array for Hex numbers that i save from last step

StringBuilder builder = new StringBuilder();
int l = 0;
for(String s : HS) {
builder.append(s);
if (s.length()<=1){
stringHextoBinary[l] = HexToBinary(s.charAt(0));
l++;
System.out.print(HexToBinary(s.charAt(0)) + ",");

}else{
stringHextoBinary[l] = HexToBinary(s.charAt(0))+HexToBinary(s.charAt(1));
l++;
System.out.print(HexToBinary(s.charAt(0))+HexToBinary(s.charAt(1))+",");
}

public static String HexToBinary(char Hex) {
int i = Integer.parseInt(Character.toString(Hex), 16);
String Bin = Integer.toBinaryString(i);
return Bin;
}
}

当 if 语句有一位或两位时,它可以与 HEX 一起使用。但我的问题是打印出来十六进制转二进制:11100,111,111,10111,11101,它在其中丢失了0。 :(

这样当我加密单词“apple”,并用相同的代码解密时,会返回单词“pppxl”:(

希望能尽快得到答复,非常感谢!

最佳答案

使用Apache commons StringUtils类的这个方法

public String leftPad(String str, int size, char padding);

将数字转换为 0 和 1 之后。它可能看起来像

String paddedBin = StringUtils.leftPad(bin, 8, '0');

例如。不确定您实际想要将其填充到多少位数。

关于java - 十六进制到二进制字符串Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com