浅析Java中的scanner(内容较为全面,初学向)

4 篇文章 0 订阅

前些日子,博主在学Java的时候,找了许多版本的教学视频,但是发现大多数的视频都没有介绍如何使用控制台输入,这让学了一年c++习惯了cin的博主难受不已。在Java中不建议使用scanner(比如Scanner在处理空格输入的时候,会有很多麻烦),在学了Java一段时间之后,就再也不会使用scanner了。因为在将来写的程序不可能使用控制台输入技术,毕竟它是上个世纪的DOS时代的产物。但是还是想写下自己大致学习scanner时的见解,希望本篇文章能帮助读过文章的读者们!


示例代码

import java.util.Scanner;//使用前需要导入包
public class test
{	
	public static void main(String[] args)
	{
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("输入一个整数: ");
		int number = scanner.nextInt();
		
		System.out.print("输入一个字符或是字符串: ");
		String str = scanner.next(); // 输入中不得含有空格,否则凉凉!
		
		System.out.println("读入的整数为"+number);
		System.out.println("读入的字符串为"+str);
		scanner.close();//每次用完后记得关闭否则会出现warning	
	}
}

一些API函数:

delimiter() :返回此 Scanner 当前正在用于匹配分隔符的 Pattern。
hasNext() :判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)
hasNextLine() :如果在此扫描器的输入中存在另一行,则返回 true。
next() :查找并返回来自此扫描器的下一个完整标记。
nextLine() :此扫描器执行当前行,并返回跳过的输入信息。

其中,next() 从控制台读取一个字符串,nextInt()读取一个整数。
初学者只要知道简单用法即可,其他API函数只需简单了解就行
Markdown将文本转换为 HTML。

scanner.close()的必要性

使用完毕后,一定要关闭扫描器,这是因为Scanner(system.in)属于IO流,一旦打开,它一直在占用资源,因此使用完毕后切记要关闭。

缺点:

1、输入的时候不能输入带空格的内容,否则奇怪的错误出现了!(博主没有深挖问题,但是知道问题其实是很复杂的)
2、在使用Scanner的时候,如果不使用close()关闭的话,系统会报warning,但是博主偶然发现一个有趣的现象,如果通过scanner.close()来关闭scanner,一旦关闭,再次启动的时候,却是遇到异常
那如何解决这种问题呢?

下面是博主的一个比较菜鸟也是比较简单的方法,但是亲测有效嗷

在类的最后再使用close()方法


以上就是博主自己在学习scanner的一些心得体会,如果有什么需要补充不合适错误的地方,还请各位读者在评论区加以斧正。
最后真心希望这篇文章对你有所帮助!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值