我有以下代码:
String username="administrator", iusername="", password="password", ipassword="";
System.out.println("Please login to the system");
System.out.print("\nusername:\t");
iusername = scan.nextLine();
System.out.print("\npassword:\t");
ipassword = scan.nextLine();
我希望用户输入两个变量的数据(iusername和ipassword) 但我只能为ipassword输入数据,因为它跳过了
iusername = scan.nextLine();
下面的是IDE
的输出示例username: username:
password: BUILD STOPPED (total time: 12 seconds)
它跳过我的用户名并转到密码
答案 0 :(得分:1)
这可用于自动将新输出放在新行上。
System.out.println("");
如果没有更多代码或更清晰的问题,这很难回答。
username = scan.nextLine();
System.out.print("\npassword:\t");
password = scan2.nextLine();
应该是,因为您可以重用Scanner类实例。
username = scan.nextLine();
System.out.print("\npassword:\t");
password = scan.nextLine();
但可能你想做
username = scan.nextLine(); // Get user input
System.out.println("Username:\t" + username); // Show typed username
password = scan2.nextLine(); // Get user input again
System.out.println("Password:\t" + password); // Show typed password
答案 1 :(得分:1)
对不起,我不明白你的意思...... 我尝试了这个,我可以插入两个值(iusername和ipassword):
import java.util.Scanner;
public class MultipleStringInput {
public static void main(String[] args) {
String username = "administrator", iusername = "", password = "password", ipassword = "";
System.out.println("Please login to the system");
System.out.print("\nusername:\t");
Scanner scan = new Scanner(System.in);
iusername = scan.nextLine();
System.out.print("\npassword:\t");
ipassword = scan.nextLine();
System.out.println(iusername + " " + ipassword);
}
}
我认为此代码按预期工作(“我希望用户输入两个变量的数据”)。 看起来你的IDE正在将System.out重定向到你的扫描仪......奇怪......我建议你从命令行测试它。