正确的。显然你已经陷入了错误的思考过程,所以让我们清理石板并重新思考。
- 第一步:您想要获取一些用户输入
- 第二步:将其与所有先前的用户输入进行比较,看看它是否存在。
- 如果存在,则返回一条消息,指示该值已输入。
- 否则忽略输入并继续执行
- 重复第一步。
解决方案
那么,让我们回顾一下您已经拥有的内容以及需要如何更改它。
public static void main(String[] args)
如果我是你,我会避免直接从这里调用方法。如果这样做,每个方法都需要是静态的,这对于类的功能范围来说是毫无意义的调整。在 main 方法中创建类的新实例,并将此代码移至类的构造函数中。这将消除使每个方法静态的需要。
Scanner scan = new Scanner(System.in);
String array[] = new String[10];
好的,您已经创建了一个扫描仪对象,该对象从System.in
溪流。从键盘获取输入时,这是一个合理的做法。您还创建了一个数组来包含每个项目。如果您只希望用户能够输入 10 个值,那么这样就可以了。就我个人而言,我会使用数组列表 http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html,因为这意味着您可以根据用户的需要接受尽可能多的用户输入。
其次,您需要一个函数来将输入与所有其他输入进行比较。您目前所拥有的显然不起作用,所以让我们再尝试一下。
您将需要一些输入,userInput
,以及一个与之比较的集合,allInputs
.
allInputs
需要可以从程序中的任何点访问,因此将其放入字段而不是局部变量可能是明智的。
然后,因为您要将 userInput 与所有值进行比较,所以您将需要一个 foreach 循环:
for(String s : allInputs)
{
if(s.equals(userInput))
{
// Output message code.
}
}
现在的技巧是将其放入与该程序一起使用的循环中。那取决于你。