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

如何使用Java中的Scanner类和next()函数从控制台读取用户输入?

发布时间:2023-06-23 09:00:57

Java中的Scanner类和next()函数是用来从控制台读取用户输入的一个重要工具。本文将介绍如何使用Scanner类和next()函数从控制台读取用户输入。

首先,我们来了解一下Scanner类。Scanner类是Java中的一个基础类,其功能为提供从各种输入流中读取数据的方法。在使用Scanner类时,首先要创建一个Scanner对象,以便对输入流进行处理。常见的输入流包括键盘输入和文件输入。

在本文中,我们主要介绍如何使用Scanner类从控制台读取用户输入。以下代码演示了如何创建一个Scanner对象,并从控制台读取一个字符串:

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("请输入字符串:");
    String str = scanner.next();

    System.out.println("输入的字符串是:" + str);
  }
}

在上述代码中,我们首先使用import java.util.Scanner导入Scanner类。然后,我们创建了一个名为scanner的Scanner对象,并将其与标准输入流(System.in)关联。接着,使用System.out.print("请输入字符串:")提示用户输入一个字符串。最后,使用scanner.next()方法从控制台读取字符串,存储在str变量中,并输出结果。

需要注意的是,当用户输入一段字符串后,按下回车键后,Scanner对象只会读取界面上输入的字符串部分。如果后面还有空格、换行符等字符,需要用其他的读取函数进行读取。例如,使用scanner.nextLine()可以读取整行数据。

将上面的代码改为读取整行数据的方式:

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("请输入字符串:");
    String str = scanner.nextLine();

    System.out.println("输入的字符串是:" + str);
  }
}

注意此时使用的是scanner.nextLine(),该方法会读取整行数据。

除了读取字符串,Scanner类还可以读取整型、浮点型、布尔型等不同类型的数据。这些读取方法包括nextByte()nextShort()nextInt()nextLong()nextFloat()nextDouble()nextBoolean()等等,并且原理都与next()方法类似。以下是读取整型数据的示例代码:

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("请输入一个整数:");
    int num = scanner.nextInt();

    System.out.println("输入的整数是:" + num);
  }
}

需要注意的是,对于不同类型的数据,使用Scanner类读取时可能会有不同的要求。例如,对于读取整型数据,如果输入的字符串无法转换为整数,则会抛出InputMismatchException异常。因此,我们需要在程序中加入异常处理代码。

综上所述,使用Java中的Scanner类和next()函数可以方便地从控制台读取用户输入。在使用时,需要仔细选择不同类型的读取方法,并对可能的异常进行处理。