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"));
}
------其他解决方案--------------------能举个例子吗?
------其他解决方案--------------------
例如:字符串“hello world”对应的二进制序列为1101000 1100101 1101100 1101100 1101111 100000 1110111 1101111 1110010 1101100 1100100 ,怎么把这些二进制序列转换成“hello world”对应的ASII码 104 101 108 108 111 32 119 111 114 108 100,再把这些ASII码转换成字符串“hello world”。
------其他解决方案--------------------你们都忽略了第二个问题,怎么把这些ASII码转换成字符串“hello world”?
------其他解决方案--------------------是这样吗?
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"));