import java.util.Scanner;
/*
键盘输入:
next()与nextLine()的区别?
next(),读取输入的数据时,遇到空格等空白字符,就认为本次数据输入结束
nextLine(),读取输入的数据时,遇到回车换行才认为结束
上一个接收输入的语句是nextInt(),next(),nextDouble()....
下一个紧接着的接收输入的语句是nextLine()
这个时间发现第二个输入语句,还没有输入呢,就结束了。
因为:nextInt(),next(),nextDouble()....它没有读取 回车换行符,数据通道(IO流)中还有回车换行符,
那么下一个nextLine(),一看通道中有 回车换行符,就以为输入结束了。
结论:
如果字符串中不会包含空格,那么建议大家使用next()更好。
如果字符串中想要包含空格,那么nextLine()的前面还有其他输入的话,加一句input.nextLine()把前面的回车换行读取掉。
*/
public class TestNextAndNextLine {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入年龄:");
int age = input.nextInt();
System.out.println("age = " + age);
input.nextLine();//左边不用变量不用接收,目的只是把年龄后面的回车换行符读取掉
//当下面name用的是nextLine(),就需要加这句代码,如果下面name用的是next()就不用加这句代码。
System.out.print("请输入一个姓名:");
String name = input.nextLine();
/*
next()方法:
张三 name = "张三";
张 三,认为张后面空格,就是结束了,而不是回车换行结束 name = "张";
nextLine()方法:
张三
张 三
都可以接收
*/
System.out.println("name = " + name);
input.close();
}
}