Java – Scanner 读取整数(int)紧贴再输入字串(String)的注意事项

阅读时间: 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)


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章