我需要创建一个包含500行随机字符串值的2D数组,但是每个列都必须有自己的随机值,例如,第一列只有"M“或"F",第二列必须只有"Bsc”或"Msc“等等。总共将有4栏,性别,计划,学习和年份。
在此之后,我需要从这个2D数组中打印出所有可能的值。
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()有一个问题。
发布于 2021-12-13 09:28:54
试试这段代码。我为第一和第二栏做过。
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();
}
}
https://stackoverflow.com/questions/70332231
复制相似问题