阅读时间: 10分钟
每当需要读取使用者输入或档案内容中东西的时候,我们都会运用以下方式:
Scanner in = new Scanner(System.in);
不过要记得在使用前要import一个:
import java.util.Scanner
而我们都会用
nextInt()
读取使用者输入或档案内容中的整数
nextLine()
读取使用者输入或档案内容中的字串,包含空白键 tab等等。最后enter表示输入完成
但如果我们先读取字串再读取整数,是不是用下面方式就可以?
String name=in.nextLine();int number=in.nextInt();
答案: 是可以
但如果我们先读取整数再读取字串,是不是用下面方式就可以?
int number=in.nextInt();String name=in.nextLine();
答案: 是不可以
为什么是不可以?
假设我们要读取
2020
HappyNewYear
因为当完成了in.nextInt(); 其实依然停留在第一行(2020的一行)
所以当你再执行
String name=in.nextLine();
它只会在同一行读取字串
换角度看,in.nextInt();只是读取整数,完成后不会自动跳到下一行。
但如果我们要读取
2020
2021
修改一下程式
int number=in.nextInt();int number2=in.nextInt();
当完成了in.nextInt(); 其实依然停留在第一行(2020的一行)
所以当你再执行in.nextInt();时就会跳到下一行。
因为第一行的所有整数已经被读取。
所以就会去下一行读取整数
解决读取整数(int)紧贴再输入字串(String)的方法:
假设我们要读取
2020
HappyNewYear
修改一下程式
int number=in.nextInt();in.nextLine();String name=in.nextLine();
第一行读取整数(int) (第一行2020)
第二行读取一条空白Line (第一行2020的Line)
第三行读取字串(String) (第二行HappyNewYear)