import java.util.Scanner;
import java.io.*;
public class s {
public static void main(String[] args){
Scanner c=new Scanner(System.in);
int n=c.nextInt();
System.out.print(n);
int a;
try{
a=System.in.read();
System.out.print(a);
}catch(Exception e){}
}


}
输出结果:
3
3
4
52
请问52是哪里来的呢?

解决方案 »

  1.   

    试了下  貌似随便输入一个数x之后回车两次  输出是 x x 13 求高手解释
      

  2.   

    System.out.println((int)'\r'); --------13
    System.out.println((int)'\n'); --------10
    System.out.println((int)'4');  --------52
    ascii值,你懂的。
      

  3.   

    你输入的是“4”,System.in.read();返回你输入的字符串的第一个字符的ASCII码,所以是52  
      

  4.   

    System.in返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输入的数据。也就是说,输入的字符,以字节流的方式从命令行传递给变量a,因此此时a是一个整数(字节流以整数的方式来表示)。
    你说的52是你输入的4对应的ascii码。
    2楼说的13是“回车”对应的ascii码。
      

  5.   


    package test;import java.io.IOException;
    import java.io.InputStream;
    import java.util.Scanner;public class Test1 { /**
     *【描述】:
     *【作者】:alaric 
     *【时间 】:May 30, 2012
     * @throws Exception 
     * 
     */
    public static void main(String[] args) throws Exception {

    InputStream inputStream  = System.in;
    Integer a = inputStream.read();
    System.out.print(a);

    }}
    你的代码前面一段是干扰的,就直接用我这个测试。
    测试结果就是输入字符 输出ascii码。
    你要了解inputStream 的read()方法,public abstract int read()
                      throws IOException从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。 
    子类必须提供此方法的一个实现。 读的就是流的字节 输出的值就是流的ascii值。
      

  6.   

    个人技术网站  http://www.happyalaric.com 广告下