【问题标题】:Comparing each number from two different arrays in Java?比较Java中两个不同数组中的每个数字?
【发布时间】:2019-02-25 11:47:44
【问题描述】:

我真的需要一些帮助!

所以基本上我正在编写一个名为 MoreLess 的小游戏。游戏将由 3 种不同的模式组成。实际上我被困在第一个名为“挑战者”的模式上。对于这个 mod,我已经创建了 2 个方法。第一个考虑用户输入(0 到 9 之间的 4 位数字)和第二种方法(随机生成的 4 位数字)。现在我需要比较每个数字的这两个值。对于每个数字,我需要打印一些东西。如果数字较大 = '+',如果较小 = '-' 否则 '='。

public static int[] pProposition() {
    Scanner clavier = new Scanner(System.in);
    System.out.println("Veuillez saisir votre proposition à 4 chiffres entre 0 et 9");
    String saisi = clavier.nextLine();
    if (saisi.length() != 4 || saisi.replaceAll("\\D", "").length() != 4) {
        System.out.println("Vous avez saisi un nombre incorrect. Vous devez saisir un nombre de 4 chiffres entre 0 et 9" );
    }
    int[] proposition = new int[4];
    for (int i = 0; i < 4; i++) {
        proposition[i] = Integer.parseInt(String.valueOf(saisi.charAt(i)));
    }
    return proposition;
}

public static int[] genNumHasard() {
    int[] combSecrete = new int[4];
    for (int i = 0; i < combSecrete.length; i++) {
        combSecrete[i] = (int) (Math.random() * 9 + 0);
    }
    return combSecrete;
}

public static int[] joueUnTour () {
    int valeurComparaison = PlusOuMoins.pProposition().compare
    if (PlusOuMoins.pProposition() > PlusOuMoins.genNumHasard()) ;
    {

    }

【问题讨论】:

  • 那么你的问题是什么?
  • 为什么要使用数组来存储单独的数字,如果将所有4位数字都存储在一个int变量中会很容易。
  • 您发布了很多(或全部)代码,并说您是堆栈。您需要具体说明您的堆栈,您尝试过的内容以及需要帮助的内容。否则,我们不知道该为您提供什么帮助。
  • 您最好先将两个数组存储在两个int[] 类型的局部变量中。然后,您可以使用 循环 逐步遍历其中一个数组,并将该数组的 每个项目 与另一个数组的 相应项目 进行比较。

标签: java arrays int


【解决方案1】:

如果我明白你的意思,这就是你想要的。

 public static void compareNums(){

   int [] firstArr = pProposition();
   int [] secondArr = genNumHasard();

   for(int i=0;i<firstArr.length;i++){//Assuming array lenghts are same

       if(firstArr[i]>secondArr[i])
          System.out.println("For "+i+"th number result is"+" +");
       else if(firstArr[i]<secondArr[i])
          System.out.println("For "+i+"th number result is"+" -");
       else
          System.out.println("For "+i+"th number result is"+" =");
   }

}

【讨论】:

  • 想法有,但结果不准确。我没有得到确切的回报。如果我输入一个随机的 4 位数字,比如说 4562 并且随机数是 8563,我将不会得到 +(4
  • 键盘输入后随机值数组发生变化
【解决方案2】:

你只需要比较两个数组,如果你可以使用 Java 8 和 Guava,试试这个代码:

public static void compareArrays(int[] arr1, int[] arr2) {
    Streams.zip(Arrays.stream(arr1).boxed(), Arrays.stream(arr2).boxed()
            , (integer, integer2) -> integer - integer2 == 0 ? "=" : integer - integer2 > 0 ? "+" : "-")
            .forEach(s -> System.out.println(s));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2022-10-13
    相关资源
    最近更新 更多