同学 你好
本次课程我们讲解使用Scanner类
从键盘上接收数据
前面有例子讲到
可以使用main方法的参数
从键盘上接收数据
但是现在这种方法已经不通用了
更通用的方法是使用
Scanner类创建对象
再通过它的对象调用相应的方法
从键盘上接受相应的数据
Scanner类在java.util包中
使用该类的时候
需要通过import语句
把它所在的包引入进来
可以将星号改成 Scanner本身
也可以使用星号代替
区别就是如果使用了星号
相当于把这个包当中所有的类都引入了进来
其中包含了Scanner类
可以看到还是计算三角形面积的例子
在主方法里
Scanner类创建了该类的对象reader之后
reader对象就可以通过
调用nextDouble方法
从键盘上接受double类型的值
来赋给三个double类型的变量
也就是三角形的三条边
之后调用计算面积的方法
计算出三角形的面积并且输出
此外Scanner类它的对象
除了可以调用nextDouble方法
还可以调用其它的数值
例如可以调用nextInt
接收整型值
nextLong nextShort nextByte接收长整型 短整型
和字节型都是可以的
注意
第二个单词的首字母要大写
此外它还可以从键盘上接收字符串
可以使用nextLine() next()的形式
都是接收字符串
但是这两者有区别
nextLine的方法是
接收到的字符串不受空格的限制
只受回车的限制
比如说输入了一句话
I like apple
这单词之间是有空格的
这些空格都能够被nextLine函数所接收
直到打了回车结束
但是next的方法
它只能接收到I like apple当中的
第一个单词I遇到空格即截止
这是它们的第一个区别
第二个区别是
如果从键盘上接收的数据是先接收数值型
再接收字符串类型的时候
如果在数值型的接收语句后面
跟的是nextLine
则需要写两遍nextLine
第一遍是为了接收前面数值型数据的回车符
第二遍才能够真正地接收到你想要的字符串
如果使用next
将不会受到前面数值型数据的影响
所以如果从键盘上接收字符串的时候
需要根据实际情况来选择两者之一
下面我们来看一下使用Scanner类
从键盘上接收数据时
如何去编译和运行该源程序
首先同样是使用javac命令
加上该源程序的文件名的全称
把该程序编译通过
之后使用java命令
加上主类的名字去运行
回车之后要求从键盘上输入三个边
例如3 4 5
来作为三角形的三条边
之后打回车
这样的话3 4 5
就分别通过对象
调用nextDouble方法赋给a b c
所以今后我们所有的例子
如果需要从键盘上接收数据
多数是使用Scanner类的对象
去调用相应的方法
来从键盘上接收数值
以上就是本次课程的主要内容
谢谢
再见