【发布时间】:2016-10-30 16:38:41
【问题描述】:
我正在尝试将带有字符的字符串转换为 base64 中的另一个字符串。但是,不幸的是我还没有这样做。
所以得到了这个字符串:11000110 01111111 10011100 10010111 00111101 11001011 01101011 11000110 01010110 10101001 11101010 01111010 10011110 00100001
它应该变成:xn+clz3La8ZWqep6niE=
要从 String Base64 转换为二进制字符串,我使用以下代码:
public static void main(String[] args)
{
String s = new String("xlactz3Ja8Z/qep6niE=");
System.out.println("String: " + s);
byte[] b = Base64.getDecoder().decode(s);
String res = "";
String aux = new String();
for(byte a : b)
{
aux = Integer.toBinaryString(255 & a);
// If length is less than 8, than add "0"
if (aux.length() != 8) {
aux = padronize (aux);
}
res = res + aux + " ";
}
// Padronize all Substrings to have length 8
private static String padronize (String str) {
String aux = "";
// Create a auxiliar string to padronize
for (int i = 0; i < 8 - str.length(); i++) {
aux += "0";
}
return aux + str;
}
【问题讨论】:
-
能否也发布“padronize”方法代码?
-
我编辑了我的帖子并添加了 padronize 方法。谢谢
-
您从 String Base64 转换为二进制字符串的代码是正确的,可能是 main 方法中缺少右括号。我在答案中发布了您要查找的代码。