public static void main(String[] args) {
// 字符转二进制流
// String a = "aappaadd78";
String str = "谷爱凌";
char[] strChar = str.toCharArray();
String result = "";
for (int i = 0; i < strChar.length; i++) {
result += Integer.toBinaryString(strChar[i]) + " ";
}
System.out.println(result);
// 二进制流转字符
String[] tempStr = result.split(" ");
char[] tempChar = new char[tempStr.length];
for (int i = 0; i < tempStr.length; i++) {
tempChar[i] = BinstrToChar(tempStr[i]);
}
System.out.println(String.valueOf(tempChar));
}
//将二进制转换成字符
public static char BinstrToChar(String binStr) {
int[] temp = BinstrToIntArray(binStr);
int sum = 0;
for (int i = 0; i < temp.length; i++) {
sum += temp[temp.length - 1 - i] << i;
}
// ASCII, (char)数字 unicode集 'e'可以转换为int是对应的ascii码(十进制)
return (char) sum;
}
//将二进制字符串转换成int数组
public static int[] BinstrToIntArray(String binStr) {
char[] temp = binStr.toCharArray();
int[] result = new int[temp.length];
for (int i = 0; i < temp.length; i++) {
result[i] = temp[i] - 48;
}
return result;
}
// 编码
String a = "吾问无为谓无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无无";
byte[] bytes = a.getBytes(StandardCharsets.UTF_8);
String s = Base64.getEncoder().encodeToString(bytes);
// 解码
byte[] decode = Base64.getDecoder().decode(s);
String a2 = new String(decode);
字符转二进制流
于 2022-10-10 13:47:30 首次发布