例如:
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个数字:");
int num = scanner.nextInt();
System.out.println("输入的数字为:" + num);
System.out.println("输入一个字符串:");
String str = scanner.nextLine();
System.out.println("输入的字符串为:" + str);
System.out.println("运行结束");
}
}
结果:
输入一个数字:
1
输入的数字为:1
请输入一个字符串:
运行结束
输入一个数字后,会直接跳过了输入字符串的步骤。
原因:
输入数字时可能按下了回车键,nextLine() 将回车键留下的换行符读走了。
即:nextLine() 接收的字符串包括换行符、制表符等。
解决方案:
在输入字符串前先用一个 nextLine() 将回车键留下的换行符读走。
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个数字:");
int num = scanner.nextInt();
System.out.println("输入的数字为:" + num);
scanner.nextLine();
System.out.println("输入一个字符串:");
String str = scanner.nextLine();
System.out.println("输入的字符串为:" + str);
System.out.println("运行结束");
}
}
结果:
输入一个数字:
1
输入的数字为:1
输入一个字符串:
abcc
输入的字符串为:abcc
运行结束