当我们在学习java的时候会遇到一些问题使用键盘来输入数据,那么怎么使用键盘输入数据呢?
在Java中有一个Scanner类,使用很简单,下面我们来简单介绍一下这个Scanner类.
首先我们要使用Scanner类的时候需要声明一个Scanner变量并实例化一个Scanner,然后使用System.in来传入数据,如下:
Scanner scanner = new Scanner(System.in);
咱们首先来看下Scanner类里有哪些常用方法:
图片摘自Scanner Api
其实上面这些方法基本都是大同小异,相信学习过Java变量和数据类型的同学都可以看得懂这些next后面数据类型的意思,
那么我们这里主要介绍一下next和nextLine的用法,因为这两个用法在不熟悉Scanner类的时候很容易使用错误,咱们先贴一段代码来演示两个用法的不同:
那么我们这里主要介绍一下next和nextLine的用法,因为这两个用法在不熟悉Scanner类的时候很容易使用错误,咱们先贴一段代码来演示两个用法的不同:
next()
public class Demo05 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("这里展示next方法的用法:"); String next = scanner.next(); System.out.println(next); } }上面的代码中运行结果如下:
这么一看好像也没有什么问题啊?如果我们在123的后面加上一个空格然后在输入其它的数据的时候,会发生什么呢?
我们会发现结果仍然是123,那么空格后的为什么不会打印出来呢?其实next()不能读取由空格隔开的字符,next会将空格,tab和回车作为分割符号或结束语句,
nextLine()
那么nextLine则相反,nextLine会读取所有输入的字符,包括空格,但是也以回车来结束输入,如下:
public class Demo05 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("这里展示nextLine方法的用法:"); String next = scanner.nextLine(); System.out.println(next); } }打印结果如下:
小练习
在学习了Scanner类之后,我们可以写一些小练习来加深自己的记忆和编码能力
练习:请键盘输入圆的半径,计算出圆的面积
首先可以先想到圆的面积的公式为:S=πr²
那么键盘输入,在学习了Scanner后大家都可以立即想起,那么我们使用Scanner:
public class Demo04 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入圆的半径:"); double radius = scanner.nextDouble(); double area = 3.14 * radius * radius; System.out.println("圆的面积是:" + area); } }
在看过上面的Api之后,应该会明白nextDouble的意思,这里使用nextDouble是因为圆的面积是浮点型,所以使用Double来进行计算,如果是整数呢的正方体运算之类的呢?那就可以使用nextInt来计算,写法都是一样的,这里就先介绍到这里.