欢迎访问宙启技术站
智能推送

如何使用Java中的Scanner类从用户处获取输入?

发布时间:2023-06-17 05:59:09

Scanner类是Java中的一个输入工具类,用于接收用户从键盘或其他输入流中输入的数据信息,并将其转化为程序可操作的数据类型。通常情况下,我们使用Scanner对象来读取用户从键盘或其他输入设备中输入的数据。

在使用Scanner类获取用户输入之前,我们需要先创建Scanner对象。首先,我们需要导入java.util.Scanner类库。

import java.util.Scanner;

然后,我们可以使用“new”关键字来创建Scanner对象。创建Scanner对象时,需要指定要读取数据的来源,例如,从标准输入流(即键盘)读取数据:

Scanner scanner = new Scanner(System.in);

上面的代码创建了一个Scanner对象,并告诉它从标准输入流中读取数据(即从键盘中读取数据)。此时,我们就可以使用Scanner对象来获取用户输入了。下面是一些常见的使用Scanner类读取用户输入的方法。

## 读取整数型数据

读取用户输入的整数型数据,可以使用nextInt()方法。例如:

Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();

上面的代码创建了一个Scanner对象,然后获取用户输入的整数型数据,并将其存储到变量num中。

需要注意的是,如果用户输入的不是整数型数据,程序会抛出InputMismatchException异常。在读取用户输入之前,我们可以使用hasNextInt()方法判断输入是否为整数型数据,以避免程序出现异常:

Scanner scanner = new Scanner(System.in);
if(scanner.hasNextInt()){
    int num = scanner.nextInt();
}
else{
    System.out.println("输入的不是整数型数据!");
}

## 读取浮点型数据

读取用户输入的浮点型数据,可以使用nextDouble()和nextFloat()方法。例如:

Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
float f = scanner.nextFloat();

上面的代码分别读取用户输入的double和float类型数据。

需要注意的是,如果用户输入的不是浮点型数据,程序会抛出InputMismatchException异常。在读取用户输入之前,我们可以使用hasNextDouble()和hasNextFloat()方法判断输入是否为浮点型数据,以避免程序出现异常:

Scanner scanner = new Scanner(System.in);
if(scanner.hasNextDouble()){
    double d = scanner.nextDouble();
}
else{
    System.out.println("输入的不是浮点型数据!");
}

## 读取字符串型数据

读取用户输入的字符串型数据,可以使用next()和nextLine()方法。例如:

Scanner scanner = new Scanner(System.in);
String str1 = scanner.next(); //读取一个单词
String str2 = scanner.nextLine(); //读取一行

上面的代码分别读取用户输入的一个单词和一行。

需要注意的是,next()方法只会读取用户输入的一个单词,如果用户输入的是多个单词,那么只会读取第一个单词。如果要读取一行数据,需要使用nextLine()方法。

## 读取布尔型数据

读取用户输入的布尔型数据,可以使用nextBoolean()方法。例如:

Scanner scanner = new Scanner(System.in);
boolean b = scanner.nextBoolean();

上面的代码读取用户输入的布尔型数据,并将其存储到变量b中。

需要注意的是,如果用户输入的不是布尔型数据,程序会抛出InputMismatchException异常。在读取用户输入之前,我们可以使用hasNextBoolean()方法判断输入是否为布尔型数据,以避免程序出现异常:

Scanner scanner = new Scanner(System.in);
if(scanner.hasNextBoolean()){
    boolean b = scanner.nextBoolean();
}
else{
    System.out.println("输入的不是布尔型数据!");
}

以上就是使用Java中的Scanner类从用户处获取输入的方法和注意事项。尽管Java提供了多种方法来获取用户输入,但在实际应用中,使用Scanner类获取用户输入是最常用的方法之一。因此,熟练掌握Scanner类的具体用法,是开发Java程序员必备的技能之一。