import java.util.*;public class InputTest {
public static void main(String[] args){
Scanner in =new Scanner(System.in);
System.out.println("What is your name?");
String name = in.nextLine();
System.out.println("How old are your?");//①
int age = in.nextInt();//②
System.out.println("Y?");//③
String yes = in.nextLine();//④
System.out.println("Hello," + name+ ". Next year,you'll be " + (age + 1) + "."
+ yes);
}
}这样的话④就不会让你输入字符串 它会直接打印 像是把④给忽略了
如果把①②和③④换下就正常 什么原因?
public static void main(String[] args){
Scanner in =new Scanner(System.in);
System.out.println("What is your name?");
String name = in.nextLine();
System.out.println("How old are your?");//①
int age = in.nextInt();//②
System.out.println("Y?");//③
String yes = in.nextLine();//④
System.out.println("Hello," + name+ ". Next year,you'll be " + (age + 1) + "."
+ yes);
}
}这样的话④就不会让你输入字符串 它会直接打印 像是把④给忽略了
如果把①②和③④换下就正常 什么原因?
此扫描器执行当前行,并返回跳过的输入信息。
String yes = in.nextLine();//④
这里的nextLine改成next就可以了,最好别用nextLine
String yes = in.nextLine();//④
改成:
String yes = in.next();//④就行了
qq
How old are your?
22 yyyyyyyyyyy
Y?
Hello,qq. Next year,you'll be 23. yyyyyyyyyyyin.nextInt(); 只读取了22String yes = in.nextLine();//④ 中 in.nextLine();再读取的时候,发现了“结尾处的行分隔符”(回车)
它会认为你已经输入完毕,直接输出读取到的值。
因此,结合上面的测试结果,如果你输入的是22回车,④读取到的就是一个空字符串
所以,看起来像是把④给忽略了。
String yes = in.nextLine();//④
System.out.println("Hello," + name+ ". Next year,you'll be " + (age + 1) + "."
+ yes);你还没有读到下一行,你的程序就结束了。
这里不能用nextLine(),你换next()试试应该可以的。