import java.util.Scanner;
public class HelloWorld{
public static void main(String args[]){
Scanner dd = new Scanner(System.in);
System.out.println("Enter name");
String b = dd.nextLine();
System.out.println("Enter num");
int num = dd.nextInt();
}
}
和
import java.util.Scanner;
public class HelloWorld{
public static void main(String args[]){
Scanner dd = new Scanner(System.in);
System.out.println("Enter num");
int num = dd.nextInt();
System.out.println("Enter name");
String b = dd.nextLine();
}
}
为什么后者不能正常工作(不让我输入名字),而第一个呢?
我已经编造了一个没有令人讨厌的“扫描仪扫描=新扫描仪”的新版本。 那个解决方案怎么样?它可能有什么缺点?
import java.util.Scanner;
public class HelloWorld{
public static void main(String args[]){
System.out.println("Enter num");
int i = new Scanner(System.in).nextInt();
System.out.println("Enter name");
String b = new Scanner(System.in).nextLine();
}
}
答案 0 :(得分:0)
在第二种情况下,nextInt()
不会扫描用户在按Return键时输入的换行符。
在第一种情况下,首先遇到nextLine()
,因此问题不会显现出来。
故事的寓意是总是使用nextLine()
并相应地解析结果字符串。使用Integer#parseInt
之类的东西将字符串转换为整数。
答案 1 :(得分:0)
第二个程序首先需要Int,然后是名称。因此,输入名称时可能会出错。