Java中使用Scanner关键字来录入数据
步骤1.导包
由于scanner类不在lang包下,需要将其所在的包导入进来
import java.util.Scanner
由于我们使用的集成开发工具,此步可以省略
快捷键:导包 ctrl + shift + o
步骤2.直接创建扫描器对象
Scanner scanner = new Scanner(System.in);
步骤3.使用创建好的扫描器录入数据
录入的数据也分很多类型,比如int,double,float,string,布尔值等
下面依次接受各个类型的区别以及实例
- 录入整数 int
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int int01 = scanner.nextInt();
//使用扫描器的时候,next()方法会堵塞程序,不输入数据程序不会向下执行
System.out.println(int01);
- 录入小数 double float
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个小数:");
double d1 = scanner.nextDouble();
System.out.println(d1);
- 录入布尔值
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个布尔值");
boolean b1 = scanner.nextBoolean();
System.out.println(b1);
- 录入字符串
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的名字:");
String name = scanner.next();
System.out.println(name);
- 录入一行nextLine()
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一行字符串:");
String line = scanner.nextLine();
System.out.println(line);
- nextLine和next的区别
next的特点:
- 输入的数据不能有空格,否则会终止输入
- 如果前面有空格或者回车会直接去掉,不会录入
- 所以如果前面有空格可以使用该方法,但是后面有空格则不行
nextLine()的特点
- 以换行结束
- 一般情况下,不要将next()和nextLine()混用,因为next的结束会影响nextLine的输入
- 一般不和以上的几种next混用
- 可以录入空数据,获得空白内容
- 关闭扫描器,防止内存泄漏,一般在程序的结尾处
scanner.close();
Demo1
接受三个数据且比较大小
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int c = scanner.nextInt();
int d = scanner.nextInt();
int e = scanner.nextInt();
if (c > d) {
if (c > e) {
System.out.println(c + "是最大值");
}else {
System.out.println(e + "是最大值");
}
}else {
if (d > e) {
System.out.println(d + "是最大值");
}else {
System.out.println(e + "是最大值");
}
}
}
}
Demo2
输入:我叫xx。我来自xx,我今年xx岁,我的bmi为xx
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name1 = scanner.next();
String home = scanner.next();
int age = scanner.nextInt();
float bmi = scanner.nextFloat();
System.out.println("我叫"+name1+",我来自"+home+",我今年"+age+"岁,我的bmi为"+bmi);
scanner.close();
}
}