[size=large]今天玩程序员闯关游戏最后一关,碰到个难题,一大串二进制数要转换成ascii码。
最后想到ASCII码对应的数是十进制数的,可以先把二进制转换成十进制,再强制转换成char类型就好了。
于是用到Integer类中的一个方法:
static int parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
该方法使用方式:第一个参数应填写以字符串形式表示的二进制数。第二个参数填写“2”,以表示第一个参数是二进制数。该方法返回一个十进制带符号的整数。[/size]
这里贴出源代码:
最后想到ASCII码对应的数是十进制数的,可以先把二进制转换成十进制,再强制转换成char类型就好了。
于是用到Integer类中的一个方法:
static int parseInt(String s, int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
该方法使用方式:第一个参数应填写以字符串形式表示的二进制数。第二个参数填写“2”,以表示第一个参数是二进制数。该方法返回一个十进制带符号的整数。[/size]
这里贴出源代码:
import java.io.*;
public class ToAscii {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("binary.txt")));
String[] ss=null;//用来保存第一行的各项
for(;;) {
String str = br.readLine();
//如果读到文件最后一行之后,则退出循环
if(str==null)
break;
ss=str.split(" ");//每一行的各项用空格分开
for (String s : ss) {
int numasc = Integer.parseInt(s, 2);
System.out.print((char)numasc);//强制转换成char类型,并输出
}
}
br.close();
}
}