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

nextInt从控制台读取整型数据?

发布时间:2023-06-10 15:32:01

Java中的nextInt()方法是Scanner类的一个方法,可以从控制台(也就是命令行窗口)读取整数型数据。在Java编程中,我们经常需要从用户或其他程序获取输入数据,这就需要通过输入流(InputStream)来读取数据。Scanner类提供了一种简单易用的方式来读取输入流中的数据,nextInt()方法就是其中的一种。

1. 使用nextInt()方法获取整数型数据

Scanner类的nextInt()方法可以读取输入流中的下一个整数型数据,并返回int类型的值。这个方法会自动跳过输入流中的空格和换行符,并只读取整数型数据。下面是一个例子,演示如何使用nextInt()方法从控制台读取整数型数据:

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对象scanner,使用System.in作为数据流输入源。然后我们使用System.out.print()方法向控制台输出一个提示信息,让用户输入一个整数。接着,我们调用nextInt()方法从输入流中读取整数型数据,并将其赋值给变量num。最后,我们使用System.out.println()方法将用户输入的整数显示在控制台上。

2. 处理nextInt()的异常

当使用nextInt()方法从输入流中读取整数型数据时,可能会抛出InputMismatchException异常,因为nextInt()方法假设输入中的下一个标记是一个int型值。如果输入不是int型值,则报错。下面的代码演示了如何处理这个异常:

import java.util.InputMismatchException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = 0;
        boolean valid = false;
        while(!valid) {
            try {
                System.out.print("请输入一个整数:");
                num = scanner.nextInt();
                valid = true;
            }
            catch(InputMismatchException e) {
                System.out.println("输入错误,请重新输入");
                scanner.nextLine(); // 读取输入流中的剩余内容,以便下一次读取
            }
        }
        System.out.println("您输入的整数是:" + num);
    }
}

在上面的代码中,我们使用一个while循环反复读取控制台输入流,直到用户输入了一个合法的整数。在每次读取时,我们使用try-catch语句来捕获InputMismatchException异常。如果发生异常,我们打印一条错误信息,并使用scanner.nextLine()方法将输入流中的剩余内容读取掉,以便下一次读取。

3. 使用nextInt()方法读取文件中的数据

除了从控制台读取数据,Scanner类的nextInt()方法还可以用于从文件中读取整数型数据。下面是一个例子,使用nextInt()方法读取一个文本文件中的整数数据:

import java.util.Scanner;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        File file = new File("input.txt");
        Scanner scanner = new Scanner(file);
        int num = scanner.nextInt();
        System.out.println("从文件中读取的整数是:" + num);
        scanner.close();
    }
}

在上面的代码中,我们通过File类的构造函数创建了一个File对象,用于表示要读取的文件。然后我们创建了一个Scanner对象scanner,使用file作为数据流输入源。使用nextInt()方法从输入流中读取整数型数据,并将其赋值给变量num。最后,我们使用System.out.println()方法将读取的整数显示在控制台上。注意,在使用Scanner类读取文件时,我们必须首先将文件包装成一个输入流。在上面的代码中,我们使用file作为输入流的源。

这就是Java中使用nextInt()方法从控制台读取整数型数据的方法。总之,Scanner类提供了一个方便的方式来读取命令行输入流或文件输入流中的数据,使Java编程更加简单易用。