我有一个问题,我现在试图解决大约一个星期,但几乎没有得到任何地方。所以我决定问"强大"堆栈溢出。对不起,如果这对经验丰富的JAVA程序员来说似乎微不足道。
我有一个ArrayList对象,它扩展了一个自定义类。我的班级名为" AddMitglied"并且意味着将成员存储在我的程序中。用户将添加新成员,并将它们存储在ArrayList中。
package 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
但不知道如何在我的具体例子中使用它。
答案 0 :(得分:1)
如果我理解正确,如果当前用户尚未使用mitgliederliste
,您希望用户只在addNumber
内大声朗读。
您需要检查用户选择的addNumber
是否与mitgliederliste
中的当前用户无关。
public static boolean isValid(int inputnumber, ArrayList mitgliederliste) {
for (AddMitglied a : mitgliederliste) {
if (a.addNumber == inputnumber) {
return false;
}
}
return true;
}
用while循环包含它;
int inputnumber = 0;
while (inputnumber == 0 || !isValid(inputnumber)) {
while (!inputUser.hasNextInt()) {
inputUser.next();
System.out.println("please enter numeric value");
}
inputnumber = inputUser.nextInt();
}