如何将二进制文件转换为字符或字符串?,Java
How to convert a binary to a char or String ?, Java
我知道这可能是一个简单的问题,但我真的无法解决这个问题!
我想要的是将数组转换为 char
我的意思是,假设 someArray 包含 {1,0,1,0,1,0},并且在二进制中,10101010 = ª
现在,我该怎么做?有没有像 arrayToChar(byte) 之类的东西?
我的想法是用
之类的所有转换进行 class
if(someArray.equals(10101010)){
return "ª";
}
但我知道一定有更简单、更短的方法来做到这一点,有什么想法吗?
:( 请帮忙
a
的正确二进制文件是 1100001
。你可以用
之类的东西(在 Java 8+ 中)
int[] arr = { 1, 1, 0, 0, 0, 0, 1 };
StringBuilder sb = new StringBuilder();
IntStream.of(arr).forEach(x -> sb.append(x));
char ch = (char) Integer.parseInt(sb.toString(), 2);
System.out.println(ch);
或而不转换为String
(以及Java的早期版本),如
int v = 0;
for (int i = 0; i < arr.length; i++) {
v += arr[arr.length - i - 1] * Math.pow(2, i);
}
System.out.println((char) v);
两个输出(按要求)
a
试试这个
int[] myArray = {1, 0, 1, 0, 1, 0};
int i = IntStream.of(myArray).reduce(0, (a, b) -> a * 2 + b);
String s = Character.toString((char)i);
System.out.println(Arrays.toString(myArray) + " -> " + s);
// [1, 0, 1, 0, 1, 0] -> *
我知道这可能是一个简单的问题,但我真的无法解决这个问题! 我想要的是将数组转换为 char 我的意思是,假设 someArray 包含 {1,0,1,0,1,0},并且在二进制中,10101010 = ª 现在,我该怎么做?有没有像 arrayToChar(byte) 之类的东西? 我的想法是用
之类的所有转换进行 classif(someArray.equals(10101010)){
return "ª";
}
但我知道一定有更简单、更短的方法来做到这一点,有什么想法吗? :( 请帮忙
a
的正确二进制文件是 1100001
。你可以用
int[] arr = { 1, 1, 0, 0, 0, 0, 1 };
StringBuilder sb = new StringBuilder();
IntStream.of(arr).forEach(x -> sb.append(x));
char ch = (char) Integer.parseInt(sb.toString(), 2);
System.out.println(ch);
或而不转换为String
(以及Java的早期版本),如
int v = 0;
for (int i = 0; i < arr.length; i++) {
v += arr[arr.length - i - 1] * Math.pow(2, i);
}
System.out.println((char) v);
两个输出(按要求)
a
试试这个
int[] myArray = {1, 0, 1, 0, 1, 0};
int i = IntStream.of(myArray).reduce(0, (a, b) -> a * 2 + b);
String s = Character.toString((char)i);
System.out.println(Arrays.toString(myArray) + " -> " + s);
// [1, 0, 1, 0, 1, 0] -> *