所以我试图让用户输入他们的名字和姓氏。我尝试使用Scanner.next();但是只读取名字(第一个标记),但我还需要扫描仪来读取姓氏。所以我做了以下事情:
Scanner sc = new Scanner(System.in);
Player1 player1 = new Player1();
System.out.print("Please write your first name and last name: ");
player1.setName(sc.nextLine());
所以这是我的代码。我希望扫描程序读取名字和姓氏,并将其传递给方法setName,该方法将输入保存到位于Player1类中的变量中。
现在,当我编译并启动程序时,它只打印出“请写下您的名字和姓氏”的声明,但之后我不能输入任何内容。
Player1 player1 = new Player1();
Player2 player2 = new Player2();
Scanner sc = new Scanner(System.in);
System.out.print("Write your first and last name: ");
player1.setName(sc.nextLine());
System.out.print("\nWrite your first and last name: ");
player2.setName(sc.nextLine());
现在这段代码几乎相同,只是我不是第二个用户输入他们的名字和姓氏。在我编译程序时,我不能在第一个语句之后输入任何信息,但之后我只能输入第二个用户的名字和姓氏。
这里发生了什么?我很感激所有的帮助!
答案 0 :(得分:2)
我尝试执行你的程序,它运行正常。
但是我觉得你是第一次在控制台上获得以下行后按Enter键
Write your first and last name
不按Enter键,只需输入第一个用户的名称即可。然后按回车键,它将要求您提供第二个用户凭据。
您还可以使用println并将程序中的消息修改为
Player player1 = new Player();
Player player2 = new Player();
Scanner sc = new Scanner(System.in);
System.out.println("Write your first and last name");
player1.setName(sc.nextLine());
System.out.println("Write your first and last name");
player2.setName(sc.nextLine());
答案 1 :(得分:0)
nivel_1
我修了一下但是上面还有另一个代码和平。当我删除它一切都开始工作正常。但它有什么问题呢?
答案 2 :(得分:-1)
我会尝试将调用sc.nextLine()的结果分配给字符串,而不是将其直接传递给方法。
String player1name = sc.nextLine(); player1.setName(player1name);
这可以帮助您隔离问题。