Java 键盘输入的三种方法

1.System.in和System.out方法:从控制台接收一个字符,然后将其打印出来

虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能针对一个字符的获取,同时,获取进来的变量的类型只能是char,当我们输入一个数字,希望得到的也是一个整型变量的时候,我们还得修改其中的变量类型,这样就显得比较麻烦。

缺点: 它只允许我们从键盘读取字符代码。

InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //从键盘读取字符串
String sAge = bufferedReader.readLine(); //从键盘读取字符串
int nAge = Integer.parseInt(sAge); //将字符串转换为数字。
2.BufferedReader类和InputStreamReader类方法:从控制台接收一个字符串,然后将其打印出来。

要从键盘读取字符串,最方便的方法是使用 BufferedReader 对象。但是要做到这一点,你必须传入要从中读取数据的对象。在本例中,即为 System.in

但是 System.inBufferedReader 不兼容,因此我们使用另一个适配器 – 另一个 InputStreamReader 对象。

缺点: 如果是要获取的是int,float等类型的仍然需要转换

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
3.Scanner类方法:

优点一: 可以获取键盘输入的字符串

优点二: 有现成的获取int,float等类型数据,非常强大,也非常方便;

使用Scanner类时需要注意nextLine()和next()的区别:

nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。
注意:使用前我们还需构建Scanner对象(没有这句话在使用Scanner类时会报错)

import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();		//读取字符串型输入
int age = scanner.nextInt();			//读取int型输入
float digital = scanner.nextFloat();	//读取float型输入
如有错误或不够理解请评论,虚心接受并回复,谢谢!