【问题标题】:Java Printing Array based off Another Array基于另一个数组的 Java 打印数组
【发布时间】:2018-04-14 23:41:37
【问题描述】:

我正在尝试打印一个数组,但是,我需要从另一个数组的整数中打印出正确的数组。

(即)arrayInt 包含 2,4,6,5,1。我想使用 for 循环来打印数字。然后,我想打印与int 对应的double。已排序的arrayInt1,2,3,4,5,未排序的arrayDouble 为2.6,6.9,1.3,2.4,9.8。在我打印arrayInt[0](即1)后,我想在arrayDouble 中打印相应的(在本例中为 1st)值。

以下代码是我想出的:

for (int k = 0; k < 7; k++)
    System.out.printf("%d %.2f\n", sortedNum[k], arrayWeight[(sortedNum[k])]);

【问题讨论】:

    标签: java arrays printing


    【解决方案1】:

    我认为您在这里回答了您自己的问题,您是否尝试过您指定的代码?

    如果我理解正确,您想根据存储在另一个数组中的索引从数组中打印一些东西,如果是这样,下面的代码应该可以工作(注意我从您的代码中删除了括号):

    for (int k = 0; k < 7; k++) {
        System.out.printf("%d %.2f\n", sortedNum[k], arrayWeight[sortedNum[k]]);
    }
    

    这是假设 sortedNum 是一个整数数组,而 arrayWeight 是一个浮点数数组。

    【讨论】:

    • 我已经尝试按照我所说的去做,但是在打印了几个数字后我得到了这个错误,但它也不会打印与整数相关的写入实数。 java.lang.ArrayIndexOutOfBoundsException: 7
    • 错误正是它所说的,您的 sortedNum 数组中不包含 8 个项目。它可能包含 7 个注释:数组索引为 0,因此第一项将是 sortedNum[0]
    【解决方案2】:

    在尝试从中获取值之前,您必须检查第二个数组的大小

    for (int k = 0; k < 7; k++) { 
    if (sortedNum[k] < arrayWeight.length)
    System.out.printf("%d %.2f\n", sortedNum[k], arrayWeight[sortedNum[k]]); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 2019-05-02
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多