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

时间:2011-03-27 22:49:54

标签: java text binary

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

2 个答案:

答案 0 :(得分:6)

只是一些逻辑修正:

这里有三个步骤

  1. 将二进制集转换为整数
  2. 然后整数变成一个字符
  3. 然后连接到您正在构建的字符串
  4. 幸运的是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;
    }
    

答案 1 :(得分:2)

请参阅此问题的答案:binary-to-text-in-java