我现在看了大约一个小时,但没有得到任何针对我的问题的建议。我想做的是取一个0和1的字符串并操纵一个符合给定String模式的char。例如:
char c = 'b'
String s = "00000000 01100001";
现在我想操纵c中的位,使它们匹配s中指定的位模式。结果c将打印为'a'(如果我没有完全错误的话)。任何帮助表示赞赏!
答案 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);