Scanner类

定义

  • java.util.Scanner
  • 一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串
  • 通过 Scanner 类来获取用户的输入
  • 常用键盘输入Scanner scanner = new Scanner(System.in);,在有效字符串之前的空白会被去掉
方法

方法名描述
next()获取输入的字符串,不能得到带有空格的字符串,会将有效字符串之后的空白作为分隔符或者结束符
nextXxx()获取输入的XXX类型的值
nextLine()获取输入的字符串,可以获得空白,以Enter作为结束符
hasNext()判断是否还有输入的数据
hasNextLine()判断是否还有输入的数据
close()关闭此扫描仪
代码示例

System.out.println("请输入:");
		
		Scanner scanner = new Scanner(System.in);
		
		while (scanner.hasNext()) {	
			
		String scan = scanner.next();	
		System.out.println("输入的是:"+scan);
		
		}
		System.out.println("没有输入了");
//结果
	请输入:
	as da  faf
	
	输入的是:as
	输入的是:da
	输入的是:faf

注:当扫描为空时,scanner.hasNext()并不返回false,而是将方法阻塞,等待你输入内容然后继续扫描。因此没有执行最后一条打印语句。

解决方法

使用带有参数的hasNext()重载方法,当扫描到的字符与参数值匹配时返回truewhile里取非运算

System.out.println("请输入:");
		
		Scanner scanner = new Scanner(System.in);
		
		while (!scanner.hasNext("this")) {	
			
		String scan = scanner.next();	
		System.out.println("输入的是:"+scan);
		
		}
		System.out.println("没有输入了");
//结果
请输入:
dadv buacg this
输入的是:dadv
输入的是:buacg
没有输入了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值