String password;
String user;
ArrayList<User> Userlist = new ArrayList<User>();
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("enter username:");
Userlist.add(user);
user = input.nextline();
System.out.println("enter password:");
Userlist.add(password);
password = input.nextline();
}
我正在尝试使用扫描器将2个字符串(用户名和密码)保存到ArrayList中。我只想知道正确的语法。
答案 0 :(得分:1)
您正在尝试创建一系列用户,因此您需要首先创建一个用户对象:
while (true) {
System.out.println("enter username:");
userName = input.nextline();
System.out.println("enter password:");
password = input.nextline();
User user = new User(userName, password); //keep in mind this required an apporopriate constructor in the User class
Userlist.add(user);
}
答案 1 :(得分:0)
这里有几个错误。首先,您无法将在控制台中输入的内容分配为User
类型。首先创建这样的对象,或者切换到String
。另外:将字符串添加到列表的顺序是错误的。您需要先阅读输入内容,然后然后将其添加到列表中。最后,甚至没有nextline
这样的方法,实际上是nextLine
。话虽如此,以下是两种解决您的问题的方法:
使用类型User
并设置适当的构造函数:
class User {
String user; String password;
User(String user, String password) {
this.user = user; this.password = password;
}
}
,相应的代码为:
String password; String user;
ArrayList<User> userlist = new ArrayList<>();
Scanner input = new Scanner (System.in);
while (true)
{
System.out.println("enter username:");
user = input.nextLine();
System.out.println("enter password:");
password = input.nextLine();
userlist.add(new User(user, password));
}
只需将所有内容放入一个列表中,其通用类型应为String
:
String password; String user;
ArrayList<String> userlist = new ArrayList<>();
Scanner input = new Scanner (System.in);
while (true)
{
System.out.println("enter username:");
user = input.nextLine();
userlist.add(user);
System.out.println("enter password:");
password = input.nextLine();
userlist.add(password);
}