2016-03-09 105 views
0

我有一个二进制代码(说“0100001001000011”),我打算将值转换为相应的字符。字符串二进制到字符串8位数字在JAVA

  1. 从左到右扫描二进制代码,每个单元8位。 (然后你就可以得到两个二进制串,01000010 01000011和)

谁能帮助我在Java代码一号?

+3

[Java中的二进制文本]可能的重复(http://stackoverflow.com/questions/4211705/binary-to-text-in-java) – Kyle

+0

您需要知道字符集和编码。 ASCII可能是这样,但IBM437,Windows-1252,UTF-8也可以,而且在那里有几十个。 –

回答

0

当然...

String str = Arrays.stream(binary.split("(?<=\\G.{8})")) 
    .map(s -> Integer.parseInt(s, 2)).map(i -> ""+(char)i) 
    .collect(Collectors.joining("")); 

免责声明:代码可能无法编译或工作,因为它是在翻阅我的手机上(但有一个合理的机会,将工作)

0

此方法将包含二进制代码的字符串转换为由String参数表示的ASCII字符串。

public static String binaryToString(String binary){ 
    String output = ""; 
    for (int i=0; i<binary.length(); i+=8){ 
     String next = binary.substring(i,i+8); 
     int code = Integer.parseInt(next,2); 
     output += ((char) code); 
    } 
    return output; 
} 

基本上使用Integer.parseInt(String s, int radix)到字符串转换为一个数字与给定基(或基数),那么该强制转换到char

+0

这就是我想要的。谢谢!! – Peter