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

如何在Java中使用Scanner函数实现从命令行输入?

发布时间:2023-07-01 07:38:10

在Java中,我们可以使用Scanner类来实现从命令行输入。

首先,我们需要在程序的开头引入Scanner类,可以使用import语句:

import java.util.Scanner;

然后,我们可以创建一个Scanner对象:

Scanner scanner = new Scanner(System.in);

Scanner的构造函数需要传入一个参数,指定输入的来源。在命令行中,我们将System.in作为参数传递,表示从标准输入读取数据。

接下来,我们可以通过调用Scanner对象的方法来获取输入的值。以下是一些常用的方法:

- nextInt():读取下一个整数值。

- nextDouble():读取下一个浮点数值。

- nextLine():读取下一行(以换行符为结束标志)。

- 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);

        System.out.print("请输入一个浮点数:");
        double decimal = scanner.nextDouble();
        System.out.println("你输入的浮点数为:" + decimal);

        System.out.print("请输入一段字符串:");
        scanner.nextLine(); // 读取换行符
        String str = scanner.nextLine();
        System.out.println("你输入的字符串为:" + str);

        System.out.print("请输入多个字符串(以空格分隔):");
        String[] strings = scanner.nextLine().split(" ");
        System.out.println("你输入的多个字符串为:");
        for (String s : strings) {
            System.out.println(s);
        }

        scanner.close(); // 关闭Scanner对象
    }
}

在这个示例代码中,我们通过scanner对象分别获取了一个整数、一个浮点数、一行字符串以及多个字符串。获取完输入之后,注意要及时关闭Scanner对象,以释放资源。

请注意,当我们使用nextInt()或nextDouble()等方法读取数值类型时,如果输入的值和所期望的类型不匹配,会抛出InputMismatchException异常。因此,在实际应用中,我们可能还需要对输入进行适当的异常处理。

另外,需要注意的是,使用nextLine()方法读取一行字符串时,如果前面已经使用nextInt()或nextDouble()等方法读取了数值类型,那么在读取字符串之前,可能需要使用一次nextLine()方法读取换行符。这是因为,nextInt()等方法只会读取有效数据部分,而不会读取换行符。因此,在获取一行字符串之前,可能还存在一个换行符,需要被读取掉。

总结一下,在Java中使用Scanner函数实现从命令行输入的基本步骤如下:

1. 引入Scanner类。

2. 创建Scanner对象,并指定输入来源。

3. 通过调用Scanner对象的方法来获取输入的值。

4. 根据需要进行适当的异常处理。

5. 及时关闭Scanner对象。

希望这个回答对你有帮助!