JAVA常见类(二) Scanner类

Scanner类

Scanner主要用于获取键盘输入的内容。

1、构造方法

Scanner类有很多种构造方法,一般用于输入的话则是Scanner(InputStream source),所需参数为InputStream,如果想获取键盘输入的内容,则需要选择System类的静态成员变量:System.in。它的描述是“标准”输入流,是一个InputStream类型的变量。格式如下:Scanner sc=new Scanner(System.in)。

2、基本方法

(1)hasNextXxx():判断输入的值是否为Xxx型的,如果为hasNext()则是判断是否有值输入。一般用在判断语句或循环语句中。

(2)nextXxx():用于返回键盘输入的Xxx类型的值。该方法可以使用多次,每使用一次就可以输入并获取一次数据,不需要再定义一个Scanner对象进行多次数据的获取。

3、next()和nextLine()方法的区别

nextLine()方法仅仅是以Enter键为结束符,返回的是Enter键前面的所有字符,包括空格、Tab键等等。

next()方法结束符比nextLine()多,Enter键、空格、Tab键都是结束符不过有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键视为分隔符或结束符。即如果一开始就输入空格键、Tab键或Enter键,它是被无视。

简单的说,就是next()方法无法获取带有空格、Tab键的字符串,而nextLine()方法则可以。

4、一个小问题

如果第一次使用nextXxx()获取一个数值,接着第二次使用nextLine()获取一个字符串,那么第一次输入完按下Enter键,这个Enter键并不像我们想像中的只代表输入结束而消失,它实际上会把这个也当成一个字符传给nextLine()方法,而nextLine()是以Enter键作为结束的标志,所以会直接结束

这就会造成一个后果:第一次输入完后按下Enter键程序就直接结束了,不给你输入第二次的机会。

解决方法:将所有的类型都看成String类型获取,最后再转为相应类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值