【问题标题】:Print Random Values from an 2D Array, these values coming from other 1D arrays (should be strings)从二维数组打印随机值,这些值来自其他一维数组(应该是字符串)
【发布时间】:2022-01-16 18:46:26
【问题描述】:

我需要创建一个包含 500 行随机字符串值的二维数组,但每列必须有各自的随机值,例如,第一列只有“M”或“F”,然后第二列必须只有“ Bsc”或“Msc”等。总共有 4 列,性别、计划、研究和年份。

之后,我需要从这个二维数组中打印出所有可能的值。

import java.security.SecureRandom;

public class read {

    public static void main(String[] args) {

        int row = 500;
        int col = 5;
        String[][] grid = new String[row][col];
        String[] Gj = {"M","F"};
        String[] AB = Gj;
        SecureRandom rnd = new SecureRandom();
        for (int i = 0; i < grid.length; i++) {
            StringBuilder sb = new StringBuilder(row);
            for (int j = 0; j < grid[i].length; j++) {
                sb.append(AB.charAt(rnd.nextInt(AB.length())));
                sb.toString();
                grid[i][j] = sb.toString();
            }
        }

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

    }
} 

这是我到目前为止所做的,我知道那里使用 AB.length() 有问题。

【问题讨论】:

  • 同时添加您的预期输出。
  • 这里的 StringBuilder 有什么意义?

标签: java arrays


【解决方案1】:

试试这个代码。我已经完成了第 1 列和第 2 列。

public static void main(String[] args) {
    int row = 500;
    int col = 5;
    String[][] grid = new String[row][col];
    String[] col1 = {"M","F"};
    String[] col2 = {"Bsc","Msc"};
    SecureRandom rnd = new SecureRandom();
    for (int i = 0; i < grid.length; i++) {
        for (int j = 0; j < grid[i].length; j++) {
            if(j == 0) {
                grid[i][j] = col1[rnd.nextInt(col1.length)];
            } else if(j == 1) {
                grid[i][j] = col2[rnd.nextInt(col2.length)];
            } else if(j == 2) {
                grid[i][j] = "studies"+rnd.nextInt();
            } else {
                grid[i][j] = "year"+rnd.nextInt();
            }
        }
    }
    for (int i = 0; i < grid.length; i++) {
        for (int j = 0; j < grid[i].length; j++) {
            System.out.print(grid[i][j]+" ");
        }
        System.out.println();
    }
}

【讨论】:

    猜你喜欢
    • 2019-08-04
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多