System.in.read()只读取第一个字符
转换成bytes,此时输出的就是对应的ASCII码
例如
A 65
a 97
1 49
2 50 
3 51

解决方案 »

  1.   

    System.out.println(System.in.read()-0);
    输出的是ASII,减去0就好了
      

  2.   

    因为5的ASICII是35,7的是37,这是16进制数!然而输出的是10进制数!!
    所以5-35-53。那你就在System.in.read()后面-4喽!
      

  3.   

    纠正一下!!“那你就在System.in.read()后面-4喽!”这句话不对 不好意思!!
    你试试这样一段代码!!
    import java.io.*;
    public class Bte{
    public static void main(String[] args)throws IOException{
    InputStreamReader reader=new InputStreamReader(System.in);
                      BufferedReader input=new BufferedReader(reader);
    System.out.println(input.readLine());
    }
    }
      

  4.   

    要想得到数字,必须用Integer.parseInt(String str)方法把刚才从键盘输入的数字进行转换才能得到数字。
      

  5.   

    谢谢!可是为什么只能使用readline才能输出正确的结果呢?
      

  6.   

    如果我要让输出的类型为int型该怎么办呢?
      

  7.   

    用它Integer.parseInt(String str)来作一次转换不就行了吗?