📜  nextint 之后的 java 扫描器字符串 nextline - Java (1)

📅  最后修改于: 2023-12-03 15:33:06.540000             🧑  作者: Mango

Java中的nextInt和nextLine扫描器字符串

在Java编程中,我们经常需要从控制台中获取用户输入的数据。针对这种需求,Java提供了scanner类,它可以读取标准输入流中的数据。在scanner类中,有两个常用的方法:nextInt和nextLine。

nextInt方法

nextInt方法用于读取下一个整数,它会将读取到的整数返回给程序,如果标准输入流中并不是整数,就会抛出InputMismatchException异常。下面是一个nextint的代码片段:

import java.util.Scanner;

public class NextIntExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        System.out.println("You entered " + i);
        scanner.close();
    }
}

这个程序首先创建了一个scanner对象,然后读取了标准输入流中的一个整数,并将其存储在变量i中,最后输出了变量i的值。

nextLine方法

nextLine方法用于读取下一行文本,它会将读取到的文本字符串返回给程序,如果标准输入流中并没有下一行文本,就会一直等待用户输入。下面是一个nextLine的代码片段:

import java.util.Scanner;

public class NextLineExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        System.out.println("You entered " + s);
        scanner.close();
    }
}

这个程序首先创建了一个scanner对象,然后读取了标准输入流中的一行文本,并将其存储在变量s中,最后输出了变量s的值。

需要注意的是,当我们在程序中使用nextLine方法之前使用了nextInt方法时,由于nextInt方法只读取了一个整数,它没有读取该行剩余的字符,因此会留下一个换行符。这个换行符会被下一个nextLine方法读取,导致我们无法输入文本数据,这是开发者经常遇到的一个坑。为了避免这种情况,我们可以在nextInt方法之后再调用一次scanner.nextLine方法,将剩余的字符读取完,代码片段如下:

import java.util.Scanner;

public class NextIntAndNextLineTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        scanner.nextLine();
        String s = scanner.nextLine();
        System.out.println("You entered " + i + " and " + s);
        scanner.close();
    }
}

这个程序中,我们在nextInt方法之后调用了一次nextLine方法,这样就将剩余的字符读取完了。这种做法可以保证我们在使用nextLine方法时不会受到之前nextInt方法的干扰。

以上就是Java中常用的nextInt和nextLine方法的介绍,希望可以帮助大家更好地使用scanner类。