2D数组中的随机字符

时间:2015-08-01 11:44:45

标签: java random multidimensional-array

嗨,我是java编码的新手,我正在尝试创建随机数(我已经完成),我试图将这些随机数作为坐标分配到2D数组中并打印“A'在坐标处。任何帮助表示赞赏。

package training;

import java.util.Random;

public class Training {

    public static void main(String[] args) {

        char[][] values = new char[10][10];
        int foodX[] = new int[15];
        for (int i = 1; i < foodX.length + 1; i++) {
            int minFood = 0;
            int maxFood = 10;
            int randNum1 = minFood + (int) (Math.random() * (maxFood - minFood) + 1);
            int minFoodY = 0;
            int maxFoodY = 10;
            int randNum2 = minFoodY + (int) (Math.random() * (maxFoodY - minFoodY) + 1);
            for (int j = 1; j < foodX.length + 1; j++) {
                values[randNum1][randNum2] = 'A';

            }

        }

    // Assign three elements within it.
        // Loop over top-level arrays.
        for (int i = 0; i < values.length; i++) {

            // Loop and display sub-arrays.
            char[] sub = values[i];

            for (int x = 0; x < sub.length; x++) {
                System.out.print(sub[x] + " ");
            }
            System.out.println();

        }

    }
}

1 个答案:

答案 0 :(得分:0)

Java中的数组是零索引的。这意味着如果您按如下方式声明数组leftJoin('deposits', function($join) { $join->on('deposits.user_id', '=', 'users.id') ->on('deposits.status','=',DB::raw("'completed'")) ->on('deposits.created_at', '>=', \Carbon\Carbon::now()->subDays(25); })

myArray

然后你要创建一个包含final int[] myArray = new int[10]; 值的10元素数组。这也适用于二维数组,例如代码中的myArray[0], myArray[1], ..., myArray[9]数组。但是,您已定义valuesrandNum1以返回randNum21范围内的值。当其中任何一个值设置为10时,10将抛出values[randNum1][randNum2],因为您尝试使用超出其范围的索引来引用该数组。

除此之外,您还创建了一个数组ArrayIndexOutOfBoundsException,除了确定其长度之外,您无需执行任何操作。在这种情况下,为此目的声明一个常量foodX值会更好。最后,虽然您已导入int类,但您使用java.util.Random生成随机变量,这并不依赖于此。您也可以使用Math.random(),如果使用随机数种子,这将非常有用,但这可以放在一边。

如果没有遵循任何额外的考虑因素并且让我的输出只是按照我的预期工作,我会以下列方式重写你的课程:

Random.nextDouble()
相关问题