编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。 
     如何判断输入的字符串不能转换成一个十进制整数的情况以及区分出是数字太大,还是其中包含有非数字字符的情况?

解决方案 »

  1.   

    以下代码解决了你的所有问题:
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class Test {
        public static void main(String[] args) {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String s = "";
            System.out.print("请输入数字:");
            try {
                s = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                int i = Integer.parseInt(s);
                System.out.println(i);
                String bs = Integer.toBinaryString(i);
                System.out.println(bs);
            } catch (NumberFormatException e) {
                System.out.println("请输入整数(" + Integer.MIN_VALUE + "-" + Integer.MAX_VALUE + ")!");
            }
        }}
      

  2.   

    brooksychen(初晨之阳) 升的好快哟..- -!
      

  3.   

    因为两种情况下都是抛出java.lang.NumberFormatException异常,所以放在一起处理了。
      

  4.   

    如果非要区分开的话,可以改成下面的代码:
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class Test {
        public static void main(String[] args) {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String s = "";
            System.out.print("请输入数字:");
            try {
                s = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            for (int i = 0; i < s.length(); i++) {
                if (!Character.isDigit(s.charAt(i))) {
                    System.out.println("输入中包含非数字!");
                    return;
                }
            }
            try {
                int i = Integer.parseInt(s);
                System.out.println(i);
                String bs = Integer.toBinaryString(i);
                System.out.println(bs);
            } catch (NumberFormatException e) {
                System.out.println("输入的数字超出整数范围(" + Integer.MIN_VALUE + "-"
                        + Integer.MAX_VALUE + ")!");
            }
        }
    }