java 中怎么把二进制01序列转换成ASCII码?(01序列为一个字符串,各ASII码对应的01序列已用空格隔开)
java 中怎么把二进制01序列转换成ASCII码?(01序列为一个字符串,各ASII码对应的01序列已用空格隔开),还有怎么把ASCII码转换成相应的字符(ASCII码序列为一个字符串,各字符对应的ASCII码序列已用空格隔开)?
[最优解释]
不知道有没有更好的办法
[code=Java]
public static void main(String[] args) throws Exception {
String info = "1101000 1100101 1101100 1101100 1101111 100000 1110111 1101111 1110010 1101100 1100100";
String[] strArray = info.split("\\s");
byte[] byteArray = new byte[strArray.length];
for(int i = 0; i < strArray.length; i ++)
byteArray[i] = (byte) Integer.parseInt(strArray[i], 2);
System.out.println(new String(byteArray, "ascii"));
}
[/cod]
[其他解释]
楼上的简捷,我搞了笨的:
public static void main(String[] args) throws Exception
{
String info = "1101000 1100101 1101100 1101100 1101111 100000 1110111 1101111 1110010 1101100 1100100";
String[] strArray1= info.split(" ");
byte[] byteArray1=new byte[strArray1.length];
for(int i=0,j=byteArray1.length;i<j;i++)
{
for(int k=0,m=strArray1[i].length();k<m;k++)//循环按位计算.
{
byteArray1[i]+=(strArray1[i].charAt(m-k-1)-'0')*Math.pow(2,k);
}
}
System.out.println(new String(byteArray1,"ascii"));
}
String info10="104 101 108 108 111 32 119 111 114 108 100";
String[] strArray2=info10.split(" ");
byte[] byteArray2=new byte[strArray2.length];
for(int i=0,j=byteArray2.length;i<j;i++)
{
byteArray2[i]=(byte)Integer.parseInt(strArray2[i]);
}
System.out.println(new String(byteArray2,"ascii"));