nextline 接收不到输入数据的解决办法
废话不多说,先上代码
import java.util.Scanner;
/**
* @author HelloWorld
* @create 2021-04-09-14:00
* @email 154803771@qq.com
*/
public class TestOne {
public static void main(String[] args) {
String name;
int age;
String sex;
Scanner sc = new Scanner(System.in);
System.out.println("Input name: ");
name = sc.nextLine();
System.out.println("Input age: ");
age = sc.nextInt();
System.out.println("Input sex: ");
sex = sc.nextLine();
System.out.println("name: " + name + " age: " + age + " sex: " + sex);
}
}
要从键盘录入 姓名(String)、年龄(int)、性别(String)
但是问题来了:没法录入sex。。。
Why???
nextLine 会接收到 上一次输入时的Enter键。。。所以它就结束了。。。
解决办法
- 避免在nextLine 前写 其他的nextInt , next , nextDouble…
- 如果不可避免,写一个空的nextLine 接收enter
import java.util.Scanner;
/**
* @author HelloWorld
* @create 2021-04-09-14:00
* @email 154803771@qq.com
*/
public class TestOne {
public static void main(String[] args) {
String name;
int age;
String sex;
Scanner sc = new Scanner(System.in);
System.out.println("Input name: ");
name = sc.nextLine();
System.out.println("Input age: ");
age = sc.nextInt();
// 接收enter
sc.nextLine();
System.out.println("Input sex: ");
sex = sc.nextLine();
System.out.println("name: " + name + " age: " + age + " sex: " + sex);
}
}