我正在编写一个简单的程序,用户输入一个名称和一个整数。如果尚未使用整数,则名称将进入数组。我的问题是,我似乎无法弄清楚如何在输入时检查整数以查看它是否已被使用(重复)。我尝试将整数放入数组中,但无法使其工作。请记住,我是一个完整的新手。因此,在下面的代码中,在用户输入名称后,他/她输入一个时间(整数),如果时间尚未使用,则它是有效的;如果它被使用,我将需要抛出异常。到目前为止,我所拥有的只是为该名称工作的代码(将其添加到数组中)。
public void enterName()
{
Scanner keyboard = new Scanner(System.in);
for(i = 0; i < arrayNames.length; i++)
{
System.out.println("Please enter your name.");
names = keyboard.nextLine();
arrayNames[i] = names;
System.out.println("name is in");
}
System.out.println("array is full");
}
答案 0 :(得分:3)
答案 1 :(得分:3)
这是一个提示:将整数添加到Set<Integer>
,然后使用contains()
检查刚刚输入的数字是否重复。
作为contains()
的替代方法,您可以检查add()
的返回值,如果返回false
则抛出异常。
答案 2 :(得分:1)
如果您绝对必须使用数组,以下是检查重复条目的方法:
public boolean contains(int[] numbers, int searchedNumber) {
for (int number : numbers) {
if (number == searchedNumber) {
return true;
}
}
return false;
}
修改强>
表达式for (int number : numbers)
基本上意味着for each int of the int array do
。在内部,创建了一个Iterator,然后用于迭代数组(或集合)的元素。
但目前,你可以认为它(语义上)与:
相同for (int i = 0; i < numbers.length; i++) {
if (numbers[i] == searchedNumber) {
return true;
}
}
答案 3 :(得分:0)
无论您使用什么数据结构,对于您创建的每个条目,您都必须搜索(或让结构进行搜索)以查看条目是否存在。如果不是你添加和增加你的下标。再次检查算法的逻辑!