nextInt()
和 nextLine()
是 Java 中 Scanner
类的两个常用方法,用于从控制台读取用户输入的数据。
nextInt()
: 读取用户输入的下一个整数,并将其作为 int
类型返回。nextLine()
: 读取用户输入的下一行文本,并将其作为 String
类型返回。nextLine()
的情况下使用 nextInt()
?nextInt()
方法只会读取整数部分,而不会读取整数后面的换行符(\n
)。因此,当你在调用 nextInt()
后立即调用 nextLine()
时,nextLine()
会读取并返回 nextInt()
后面的换行符,这通常不是我们期望的行为。
然而,如果你不需要读取整数后面的换行符,或者你的程序逻辑不需要紧接着读取一行文本,那么你可以直接使用 nextInt()
而不需要 nextLine()
。
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int number = scanner.nextInt();
System.out.println("你输入的整数是: " + number);
// 如果需要读取下一行文本,可以使用 nextLine()
System.out.print("请输入一行文本: ");
String text = scanner.nextLine();
System.out.println("你输入的文本是: " + text);
scanner.close();
}
}
nextInt()
。nextLine()
。nextInt()
后紧接着调用 nextLine()
读取不到输入原因: nextInt()
只会读取整数部分,不会读取后面的换行符,导致 nextLine()
读取到的是换行符而不是用户输入的文本。
解决方法: 在调用 nextInt()
后,再调用一次 nextLine()
来消耗掉换行符。
import java.util.Scanner;
public class ScannerFixExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int number = scanner.nextInt();
scanner.nextLine(); // 消耗掉换行符
System.out.println("你输入的整数是: " + number);
System.out.print("请输入一行文本: ");
String text = scanner.nextLine();
System.out.println("你输入的文本是: " + text);
scanner.close();
}
}
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云