A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
public class ThirdPro {
/*
  *   编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,
  *   然后打印出这个十进制整数对应的二进制形式.
  *
  */
public static void main(String[] args) throws IOException{
  //定义输入流读取键盘输入
  BufferedInputStream in=new BufferedInputStream(System.in);
  //定义一个字节数组,一般定义数组大小为1024个,可以直接将数据读取出
  byte[] buf=new byte[1024];
  int len=0;
  
   if((len=in.read(buf))!=-1)
   {
    //将读取的数据转换成十进制数据。
    int dec=Integer.parseInt(new String(buf,0,len));//这一步出现NumberFormatException,为什么呢?
   
    //将得到的十进制转换成二进制
    //用这个十进制
    StringBuilder sb=new StringBuilder();
    int div=0;
    while((div=dec/2)!=0){
     sb.append(dec%2);
     dec=div;
    }
    StringBuilder sbRev=sb.reverse();
    System.out.println(sbRev.toString());
   
   }
}
}


评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

3 个回复

倒序浏览
parseInt
public static int parseInt(String s)
                    throws NumberFormatException将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。

参数:
s - 包含要解析的 int 表示形式的 String。
返回:
用十进制参数表示的整数值。
抛出:
NumberFormatException - 如果字符串不包含可解析的整数。
回复 使用道具 举报
杨华威 发表于 2012-4-21 18:36
parseInt
public static int parseInt(String s)
                    throws NumberFormatException将字符 ...

那怎么把给定的字符串转换成十进制呢?
回复 使用道具 举报
BufferedInputStream in=new BufferedInputStream(System.in);
??
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马