不要让我说出我的名字,但这个时代的确很适合。 我知道我可以改变陈述的顺序,但还有另一种方法吗?
import java.util.Scanner;
public class ScannerErr2
{
public static void main(String [] args)
{
Scanner keyboard= new Scanner(System.in);
String name;
int age;
System.out.print("Enter your age : ");
age= keyboard.nextInt();
System.out.print("Enter your name: ");
name= keyboard.nextLine();
System.out.println("Age : "+age);
System.out.println("Name: "+name);
}
}
答案 0 :(得分:3)
您的问题是,下一个int不会考虑名称部分输入中的新行字符。因此,名称将返回为空白。
您可以通过两种方式更改代码:
System.out.print("Enter your age : ");
age = keyboard.nextInt();
keyboard.nextLine();
System.out.print("Enter your name: ");
name = keyboard.nextLine();
或
System.out.print("Enter your age : ");
age = Integer.parseInt(keyboard.nextLine().trim());
System.out.print("Enter your name: ");
name = keyboard.nextLine();
我个人喜欢第二种方式。