开发手册 欢迎您!
软件开发者资料库

Java 获取用户输入(Scanner)

本文主要介绍Java中使用Scanner类获取用户输入的方法,next()和nextLine()的区别,以及相关示例代码。

1、Java 使用Scanner类获取用户输入

Scanner类用于获取用户输入,可以在java.util包中找到。

要使用Scanner类,需要创建该类的对象,并使用Scanner类中提供的可用方法。在我们的示例中,我们将使用nextLine()next()方法,该方法用于读取字符串:

例如:

import java.util.Scanner;  // 导入Scannerpublic class Main {  public static void main(String[] args) {    Scanner myObj = new Scanner(System.in);  // 创建Scanner对象    System.out.println("请输入用户名");    String userName = myObj.nextLine();  // 读取用户输入    System.out.println("UserName = " + userName);  // 输出用户的输入  }}

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

if (scanner.hasNext()) {

String str1 = scanner.next();

System.out.println("Input:" + str1);

}

scanner.close();

}

}

next()和nextLine()的区别:

next()不会获取字符前或后的空格或Tab键,只获取字符,开始获取字符(字符前后不算)直到遇到空格或Tab键或回车截止获取;nextLine()获取字符前后的空格或Tab键,回车键截止。

2、获取指定类型的输入

在上面的示例中,我们使用了nextLine()方法,该方法用于读取字符串。要获取其他类型的输出,请查看下表:

方法

描述

nextBoolean()

从用户输入读取boolean值

nextByte()

从用户输入读取byte值

nextDouble()

从用户输入读取double值

nextFloat()

从用户输入读取float值

nextInt()

从用户输入读取int值

nextLine()

从用户输入读取String值

nextLong()

从用户输入读取long值

nextShort()

从用户输入读取short值

在下面的示例中,我们使用不同的方法来读取各种类型的数据:

例如:

import java.util.Scanner;class Main {  public static void main(String[] args) {    Scanner myObj = new Scanner(System.in);    System.out.println("请输入姓名、年龄、体重:");    // String 输入     String name = myObj.nextLine();    // 数字 输入    int age = myObj.nextInt();    double wt = myObj.nextDouble();    // 输出信息    System.out.println("姓名: " + name);    System.out.println("年龄: " + age);    System.out.println("体重: " + wt);  }}

注意:如果输入错误(例如,使用nextInt()获取Int值,但输入的是字母就会报错。),则会收到异常错误消息(例如,InputMismatchException)。