Java将二进制序列转换为char

时间:2012-12-17 21:56:14

标签: java

我现在看了大约一个小时,但没有得到任何针对我的问题的建议。我想做的是取一个0和1的字符串并操纵一个符合给定String模式的char。例如:

    char c = 'b'
    String s = "00000000 01100001";

现在我想操纵c中的位,使它们匹配s中指定的位模式。结果c将打印为'a'(如果我没有完全错误的话)。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

你可以做到

char a = (char) Integer.parseInt("0000000001100001", 2);

答案 1 :(得分:1)

要从二进制字符串转换为Integer,请将parseInt与第二个参数一起使用为2。

int temp = Integer.parseInt("01100001", 2);

您可以使用二元运算符(&,|,^)进行修改,但如果您真正想要的只是分配变量,则可以使用强制转换进行修改。

char c = 'c';    
System.out.println((char)(c&temp));

System.out.println((char)temp);

答案 2 :(得分:0)

怎么样:

      String s = "00000000 01100001";
      String[] w = s.split(" ");
      char c = (char)(Integer.parseInt(w[0], 2) * 256 + Integer.parseInt(w[1], 2));

这允许省略每个字节的前导零。如果你知道他们在那里,你可以直接替换字符串中的空格并使用单个parseInt()电话:

      char c = (char)Integer.parseInt(s.replace(" ", ""), 2);