[英]String with binary numbers to String Base64 - JAVA
我正在嘗試將帶有字符的字符串轉換為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;
}
要從base64字符串轉換為二進制字符串,您的代碼是正確的,我用這種方式編寫它:
public static String fromBase64ToBinaryString(String base64String){
byte[] b = Base64.getDecoder().decode(base64String);
String []result = new String[b.length];
for (int i=0;i<b.length;i++){
result[i] = String.format("%8s", Integer.toBinaryString(b[i] & 0xFF)).replace(' ', '0');
}
return String.join(" ", result);
}
要從二進制String轉換為base64字符串,您可以使用以下代碼:
public static String fromBinaryStringToBase64(String binary) {
String[] split = binary.split(" ");
byte[] arrayBinary = new byte[split.length];
for(int i=0;i<split.length;i++){
arrayBinary[i] = (byte)Integer.parseInt(split[i],2);
}
return Base64.getEncoder().encodeToString(arrayBinary);
}
這里是示例代碼,以便調用這兩個方法:
String s = "xn+clz3La8ZWqep6niE=";
String fromBase64ToBinaryString = fromBase64ToBinaryString( s);
System.out.println(fromBase64ToBinaryString);
String binary = "11000110 01111111 10011100 10010111 00111101 11001011 01101011 11000110 01010110 10101001 11101010 01111010 10011110 00100001";
String fromBinaryStringToBase64 = fromBinaryStringToBase64(binary);
System.out.println(fromBinaryStringToBase64);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.