(JAVA) 从键盘输入数据
🐧从键盘输入数据
我们会遇到需要用户从键盘上输入数据的情况。这时候就需要一个接收的功能,的确,这是已经写好的。只需要我们会调用就行。
🦉方式一
(主要用作了解)
示例:
import java.io.*; public class test { public static void main(String[] args) throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); String str = buf.readLine(); System.out.println(str); } }
分析:(简述)
import
是一个关键字,作用是导入包。这里可以从c语言中的
#include<stdio.h>
来理解,
import
相当于include
,
java.io.*
相当于stdio.h
。
BufferedReader
和InputStreamReader
是java.io.*
中已经写好的类,这里的类的概念,可以先理解为自定义的类型。
由名字可以看出他们都是与
io
流相关的,即
input
输入流和output
输出流。无论是
System.in
还是new InputStreamReader()
都是传入的参数,这在方法定义时已经确定了要传入参数的类型。
就相当于c语言中函数的参数在定义的时候就已经确定的。
System.in
为标准输入流,默认设备是键盘
System.out
为标准输出流,默认设备是显示器
buf.readLine()
,作用是读取一行数据,然后是从你规定的
System.in
标准输入流中,即键盘上读取。用
.
调用readLine()
方法,返回你从键盘读取的字符串,再赋值到
str
。
throws IOException
是将可能发生的输入输出异常抛出。拓展:
由于
readLine()
的返回类型是String
所以当你想读一个int
型的数字或一个char
类型字符时
就需要用到强制类型转换。int a = Integer.parseInt(buf.readLine()); char b = buf.readLine().charAt(0);
当输入一个数字
105
后需要按enter
,结束这一行的输入,再输入C
。如果输入
105 C
中间用空格隔开,会出现错误,因为readLine()
方法如其名,会读取一行的数据,这时字符串为105 C
在进行Integer.parseInt()
时,就会出现异常,空格和C
无法转为int
型的数据。
🦆方式二
为了简化输入操作,从java SE 5版本开始,新增了一个专门用于输入操作的类Scanner
示例:
import java.util.Scanner; public class test { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int a = sca.nextInt(); double b = sca.nextDouble(); System.out.println(a); System.out.println(b); } }
分析:
import
引入的是java.util
包下的Scanner
类也可以写成
import java.util.*;
,区别是后者是引入
java.util
包下 的所有内容
System.in
作为创建一个Scanner
对象时传入的参数,作用是:可以从标准输入设备(键盘)中读取数据
sca.nextInt()
是调用sca
对象相应的方法,用于读取一个
int
型的数据,并返回。其中
sca
是一个Scanner
对象的变量名,实际上是一个引用通过
sca
可以访问Scanner
类里的方法拓展:
方法 特点 nextInt() 读取一个整型数(int) nextByte() 读取一个字节型数(byte) nextShort() 读取一个短整型数(short) nextFloat() 读取一个单精度浮点型数(float) nextDouble() 读取一个双精度浮点型数(double) next() 读取一个字符串(String) String s = sca.next();
当一串字符中有空格时,会发现next()
只会读取第一个空格前的部分,然后赋值给s
方法 特点 nextLine() 读取一个行的数据(String) String s = sca.nextLine();
用nextLine()
将回车前的数据都转化为字符串char c = sca.next().charAt(0);
没有
nextChar()
这个方法,如果需要输入得到一个字符的话,方法是输入一个只有一个字符的字符串,并且得到那个字符。
下一篇更精彩:(JAVA)转跳控制语句