public class Test2 { /**
 * @param args
 */
public static void main(String[] args) {
// TODO 自动生成方法存根 int i=0;
try{
   i=System.in.read();
    }
catch(Exception e){
System.out.println(e.getMessage());
}
System.out.println(i);
}}但是我输入12后 输出49  输入45 输出52
怎么回事啊
请教了

解决方案 »

  1.   

    System.in.read();  只读取一个字符 4的ASCII code 是 52, 1的ASCII code 是 49
      

  2.   


    int k = 0 ;

    try{
    System.out.println("please input number:");
    Scanner s  =  new Scanner(System.in);
    k = s.nextInt();
    }catch(Exception e){
    e.printStackTrace();
    }
    System.out.println(k);

    }}
      

  3.   

    System.in.readLine(); 
    诡异上个帖子竟然不显示 这最后的几个字
      

  4.   


    谢入这个后他说没有为类型 InputStream 定义方法 readLine()
    怎么回事
      

  5.   

    System.in
    是inputStream类型read()方法一次读取一个字节
    你输入12后读取的是第一个字节1,1 的ASCII值是31H十进制是3*16+1=49所以输出49,后边的解释一样。
      

  6.   

    system.in引用的是InputStream对象, 该类没有readLine()函数当然不行了,4楼的意思估计是让Lz使用
    scanner Scanner s=new Scanner(System.in);
    int d=s.nextInt();
    System.out.println(d);