如何将二进制文件转换为char或String ?,Java

时间:2016-02-12 02:10:45

标签: java string encoding char byte

我知道这可能是一个简单的问题,但实际上我无法解决这个问题! 我想要的是将数组转换为char 我的意思是,让我们假设someArray有{1,0,1,0,1,0},而二进制,10101010 =ª 现在,我该怎么做?有像arrayToChar(byte)之类的东西吗? 我的想法是创建一个包含所有转换的课程,如

if(someArray.equals(10101010)){
return "ª";
}

但我知道必须有一个更简单的方法来做到这一点,任何想法?  :(请帮助

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

试试这个

    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] -> *