【问题标题】:Entering Same number twice in an array在数组中输入相同的数字两次
【发布时间】:2013-06-10 03:15:12
【问题描述】:

任何可能的方法来继续输入数字,并且当输入相同的数字 2 次或更多次时出现错误消息或类似的东西?我只需要用 Java 来回答这个问题。我是新来的,我不知道从这里去哪里。我需要帮助在数组中搜索值,然后打印出所有输入的数字。

public class Test 
{
 public static void main(String args[])
 {

  Scanner input = new Scanner(System.in);
  System.out.println("How big is the group?: ");
  int[] group = new int[input.nextInt()];



for (int i = 0; i < group.length; i++)
{
    System.out.println("Please enter number: ");
    group[i] = input.nextInt();
}           

【问题讨论】:

  • 这与您之前的问题相比并没有太大的改进。但是,如果您不介意对数组进行排序,则可以使用 Arrays.binarySearch 方法。如果它返回一个正数,那么这个数字之前已经输入过哔哔声
  • 不知道这怎么还没有关闭。 :P

标签: java arrays list loops


【解决方案1】:

我想这就是你要找的。在 for 循环内部,有一个 while 循环旋转以不断收集新的整数,直到您输入一个不在列表中的整数。

for (int i = 0; i < group.length; i++)
{
    System.out.println("Please enter number: ");
    int next = input.nextInt();

    while(Arrays.asList(group).contains(next)) {  // Keep asking for new input while the input is already in list
        System.out.println("That number is already in the group ... try again.");
        next = input.nextInt();
    }

    group[i] = next;
}  

【讨论】:

  • 如果他不学习这些东西并且在职业世界中失败,他的损失:) 世事难料。
  • @Qix - 这并不完全正确。也正是失去了为他的教育付出代价的父母,他的学校的声誉,以及他长期受苦的同事。但不管怎样,趁他还有恢复的机会,劝阻他的不良做法不是更好吗?
  • 是和不是。你也做了很多假设。无论如何,这是重复的(请参阅我对 OP 的评论),应该这样标记。一件事是确定的; OP 不知道如何通过 Google 搜索任何内容。
  • 是的,我在做一些假设。但他提出问题的方式有一些强烈的暗示。而且我对这里的一般原则更感兴趣......>>我们
  • 然后标记问题。就这么简单。
【解决方案2】:

由于这显然是一个“学习练习”,所以只适合给你提示:

  1. 您可以通过遍历数组索引并测试每个索引处的元素来搜索数组。

  2. 方法和类都需要关闭} ...


我只需要用 Java 回答这个问题。

这是不正确的。你真正需要的是一些提示。如果我们为您提供 Java 代码,您将错过自己编写代码的重要学习经验。这就是作业的重点。不信你去问问老师。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多