【发布时间】:2017-04-26 20:35:49
【问题描述】:
我现在尝试解决大约一周的问题,但几乎没有解决任何问题。因此我决定问“强大”的 Stackoverflow。抱歉,如果这对于有经验的 JAVA 编码人员来说似乎微不足道。
我有一个扩展自定义类的 ArrayList 对象。我的课程称为“AddMitglied”,旨在将成员存储在我的程序中。用户将添加新成员,并将它们存储在 ArrayList 中。
包mitgliederverwaltung;
public class AddMitglied {
public String addLastName;
public int addmemberNumber;
public String addFirstName;
public String adddateobBirth;
public String addstreet;
public int addNumber;
public int addPlz;
public String addtown;
public String addEmailadresse;
public int addTelefonnumber;
AddMitglied(String addLastName,int addmemberNumber,String addFirstName,
String adddateobBirth,String addstreet,int addNumber,
int addPlz,String addtown,String addEmailadresse,
int addTelefonnumber)
{
this.addLastName = addLastName;
this.addmemberNumber = addmemberNumber;
this.addFirstName = addFirstName;
this.adddateobBirth = adddateobBirth;
this.addstreet = addstreet;
this.addNumber = addNumber;
this.addPlz = addPlz;
this.addtown = addtown;
this.addEmailadresse = addEmailadresse;
this. addTelefonnumber = addTelefonnumber;
}
}
显然我想获取某种会员编号(public int addNumber)以便能够通过
获取每个会员mitgliederliste.get(i).addNumber
到目前为止一切顺利,.. 我可以添加成员。我还想在用户输入新成员时检查成员编号是否已经存在。 为了检查程序中是否输入了“int”,我编写了以下方法:
public static int validateinputUser(){
System.out.println("give a number (only numeric values allowed): ");
Scanner inputUser = new Scanner(System.in);
int inputnumber = 0;
while (!inputUser.hasNextInt())
{
inputUser.next();
System.out.println("please enter numeric value");
}
inputnumber = inputUser.nextInt();
return 0;
}
}
到目前为止,这也很好用。现在我的问题是如何检查用户输入是否为数字并检查该数字是否已存在于我的 Arraylist 中以避免使用相同用户号的多个用户...我搜索了大量但不知何故没有找到合适的解决方案。
我在这里找到的是以下问题:Check if a value exists in ArrayList。在那里我了解到有一种所谓的“包含”方法。但在那里他已经知道要使用哪一个。我不能使用“包含”方法,因为我必须以某种方式遍历所有成员并检查是否已经有成员编号。如果是这样,用户必须留在循环中以强制他选择另一个。
我在网上找到了一个网站,告诉我如何做到这一点:http://crunchify.com/how-to-iterate-through-java-list-4-way-to-iterate-through-loop/ 但他在那里用字符串迭代了一个 ArrayList,这很简单,但并不直接指向我的问题。那里提到的一个方法是
java.util.stream.Stream.forEach
但不知道如何在我的具体示例中使用它。
【问题讨论】:
-
" 我不能使用 "contains" 方法,因为我必须以某种方式循环" 为什么?你这部分问题不清楚