在我们以前的编程时,由于输出被送到System.out,所以自然我们会想到用System.in接受输入。
但是,System.in有一定的局限性,只具有较少的功能集:它每次只能读取一个字节。而在Java5.0版本中假如Scanner类,它可以方便用户,使用户更好的读取键盘输入。要构造一个Scanner对象,需要将System.in对象作为参数传递给Scanner的构造函数即可:Scanner in = new Scanner(System.in); 可以用任何输入流(文件流)来创建Scanner对象。但通常是用Scanner对象读取System.in的键盘输入。
一旦创建了一个Scanner对象,就可以用 nextInt 或 nextDouble方法来读取下一个整数或浮点数。如:
double price = in.nextDouble();
System.out.print( " 请输入商品重量: " );
int quantity = in.nextInt();
当调用 nextInt 或 nextDouble方法时,程序会一直等待直至用户输入一个数并按下回车键为止。
nextLine 方法一String对象形式返回下一行输入(直至用户按下回车键)。next方法返回下一个字,可用任何空白终止,这些空白可以是空格,行末符或制表位。
String city = in.nextLine();
System.out.print( " Enter state code: " );
String state = in.next();
上面的语句用nextLine方法读取可能由很多个词组成的城市名,如:San Franciso。用next方法读取州的代码(如CA),州代码仅有一个词。
这个方法可以很大方面帮助我们读取输入数据,让以后能够更好的控制数据。