将二进制字符串转换为ASCII文本?

3

我想知道是否可以输入二进制数字并将它们转换回文本。例如,我会输入“01101000 01100101 01101100 01101100 01101111”,然后它会将其转换为单词“hello”。


3
这是需要翻译的内容:duplicate of https://dev59.com/uW855IYBdhLWcg3wq2TL这段话的意思是:重复了https://dev59.com/uW855IYBdhLWcg3wq2TL的内容。 - CoolBeans
2个回答

8

仅仅是一些逻辑上的修正:

这里有三个步骤

  1. 将二进制集合转换为整数
  2. 然后将整数转换为字符
  3. 然后连接到你正在构建的字符串中

幸运的是,parseInt 接受一个 radix 参数作为基础。因此,一旦你将字符串分割成(可能是)长度为 8 的字符串数组,或者访问必要的子字符串,你只需要做的就是 (char)Integer.parseInt(s, 2) 并连接。

String s2 = "";   
char nextChar;

for(int i = 0; i <= s.length()-8; i += 9) //this is a little tricky.  we want [0, 7], [9, 16], etc (increment index by 9 if bytes are space-delimited)
{
     nextChar = (char)Integer.parseInt(s.substring(i, i+8), 2);
     s2 += nextChar;
}

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接