1. 键盘录入第一套体系:
- nextInt(); 接收整数
nextDouble(); 接收小数
next(); 接收字符串
以上三种遇到空格,制表符,回车就停止接收,这些符号以后(包括这些符号)的数据就不会接收了,但遇到回车才结束输入。
若以空格,制表符开始,则开始的这几个空格,制表符并不录入,从其他符号开始录入。
同时以上的空格,制表符这两种符号以后(不包括这两种符号)的数据会暂时存储的内存里,等待下一个录入语句(next()或nextInt()等),就会直接录入,不会等用户再次输入。 - java帮我们写好的一个类叫Scanner,这个类可以接收键盘输入的数字(目前只考虑键盘输入数字,输入字母,字符串也可以,但是目前的代码不适用)
- 步骤一:导包,告诉这个程序,Scanner类在哪
import java.util.Scanner;
* 导包的这串代码必须在定义类的上面 - 步骤二:创建对象,表示我开始要用Scanner这个类了。
Scanner sc = new Scanner(System.in);
* 创建对象的这串代码,只有sc是变量名,可以改变,其他的都不能改变 - 步骤三:接收数据,真正开始干活了
int i = sc. nextInt();
接收数据的这串代码,只有i是变量名,可以改变,其他都不能改变。(sc虽然也是变量名,但在之前已经定义过了,此时如果改变就需要重新定义,否则使用的将是一个未被定义的变量) - 当我们需要多次的键盘输入时,步骤一和步骤二不用再写一遍了,只需要再定义个变量,用来接收键盘输入即可。
* 针对步骤一,导包不需要重复导,一次导包程序就知道Scanner类在哪了。
* 针对步骤二,我们只需要调用Scanner类中的nextInt()方法,而sc对象只是起到桥梁的作用,帮助我们调用nextInt()方法,并没有进行特殊赋值。相当于只是打了个招呼,我们要开始用Scanner类中的nextInt()方法了,当进行多次输入时,在输入第一个数字时,已经打过招呼了,当输入第二个数字时,就不需要再打一次招呼。
2. 键盘录入的第二套体系
- nextLine(); 接收字符串
可以接收空格,制表符,遇到回车才停止接收,回车以后(包括回车)的数据不会接收,同时遇到回车也结束输入。
注意:键盘录入两套体系不能混用,一套体系连续使用的时候,注意不能输空格
例如:先用nextInt(),再用nextLine()会导致下面的nextLine()接收不到数据
例如:连续用两个next(),还用空格间隔数据时,会导致下面的next()接收不到数据。
输入:
1234 456
输出:
1234
456