有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java将二进制序列转换为字符

我已经找了大约一个小时了,但是找不到任何针对我问题的建议。我想做的是获取一个0和1组成的字符串,并操作一个符合给定字符串模式的字符。例如:

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

现在我想处理c中的位,使它们与s中指定的位模式匹配。结果c将被打印为“a”(如果我没有完全错的话)。感谢您的帮助


共 (3) 个答案

  1. # 1 楼答案

    你能行

    char a = (char) Integer.parseInt("0000000001100001", 2);
    
  2. # 2 楼答案

    那么:

          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);
    
  3. # 3 楼答案

    要将二进制字符串转换为整数,请使用第二个参数为2的parseInt

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

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

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