java中在二维数组中放置随机字母
我假设创建一个二维数组,其中包含全部大写的字母。该程序的目标基本上是构建一个单词搜索拼图,我想用随机字母填充二维数组,但用我目前的代码,表数组只是用随机生成的一个字母完全填充。有没有办法用随机字母填充数组java中在二维数组中放置随机字母,java,arrays,random,Java,Arrays,Random,我假设创建一个二维数组,其中包含全部大写的字母。该程序的目标基本上是构建一个单词搜索拼图,我想用随机字母填充二维数组,但用我目前的代码,表数组只是用随机生成的一个字母完全填充。有没有办法用随机字母填充数组 import java.util.*; public class puzzle { public static void main { box(); //other methods public static void box()
import java.util.*;
public class puzzle
{
public static void main
{
box();
//other methods
public static void box()
{
int rows = 10;
int columns = 10;
int number = (int) (Math.random() * 26) + 65;
char[][] table = new char [rows][columns];
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < columns; c++)
{
table[r][c] = (char) number;
System.out.print(table[r][c] + " ");
} //inner for loop
System.out.println();
} //outer for loop
}
}
}
或
我希望它是这样的
A G E C H J E Q D Z
G H K E Q E N M E J
H I Z E K H E Q K H
B Y U M G A E K H M
N Q A Y R Y E C U E
Y D W H X S J R S W
I Y O B N M K G D E
A D J R E X C B N G
W R U I G D D G J F
X C V O E W Q A O P
如果有任何帮助,我们将不胜感激。请移动这个
int number = (int) (Math.random() * 26) + 65;
之前
table[r][c] = (char) number;
然后它将为每个循环获得一个新值只要移动这个
int number = (int) (Math.random() * 26) + 65;
之前
table[r][c] = (char) number;
然后它将为每个循环获得一个新值将您的
编号带到循环内部
char[][] table = new char [rows][columns];
for (int r = 0; r < rows; r++){
for (int c = 0; c < columns; c++){
int number = (int) (Math.random() * 26) + 65; //just move this line
table[r][c] = (char) number;
System.out.print(table[r][c] + " ");
}//inner for loop
System.out.println();
}//outer for loop
char[][]表=新字符[行][列];
对于(int r=0;r
将您的号码带到循环内
char[][] table = new char [rows][columns];
for (int r = 0; r < rows; r++){
for (int c = 0; c < columns; c++){
int number = (int) (Math.random() * 26) + 65; //just move this line
table[r][c] = (char) number;
System.out.print(table[r][c] + " ");
}//inner for loop
System.out.println();
}//outer for loop
char[][]表=新字符[行][列];
对于(int r=0;r
您只生成一个带有临时值的字符(在循环外部)。另外,我更喜欢'A'
而不是常数65
。像
for (int r = 0; r < rows; r++){
for (int c = 0; c < columns; c++){
table[r][c] = (char) ('A' + (Math.random() * 26));
System.out.print(table[r][c] + " ");
}
}
for(int r=0;r
您只生成一个带有临时值的字符(在循环外部)。另外,我更喜欢'A'
而不是常数65
。像
for (int r = 0; r < rows; r++){
for (int c = 0; c < columns; c++){
table[r][c] = (char) ('A' + (Math.random() * 26));
System.out.print(table[r][c] + " ");
}
}
for(int r=0;r
您只生成一个随机数,这里int number=(int)(Math.random()*26)+65代码>
然后,循环并将相同的编号插入到二维阵列上的每个位置。如果int number=(int)(Math.random()*26)+65代码>在循环中,每次迭代都会得到一个随机数,这样,就(理论上)得到了不同的数
所以,只要改变
public static void box(){
int rows = 10;
int columns = 10;
int number = (int) (Math.random() * 26) + 65; // move this into loop
char[][] table = new char [rows][columns];
for (int r = 0; r < rows; r++){
for (int c = 0; c < columns; c++){
table[r][c] = (char) number;
System.out.print(table[r][c] + " ");
}//inner for loop
System.out.println();
}//outer for loop
另一件我会改变的事情是使用“A”而不是65。在我看来这更清楚了<代码>表[r][c]=(int)(Math.random()*26)+'A'代码>您只生成一次随机数,这里int number=(int)(Math.random()*26)+65代码>
然后,循环并将相同的编号插入到二维阵列上的每个位置。如果int number=(int)(Math.random()*26)+65代码>在循环中,每次迭代都会得到一个随机数,这样,就(理论上)得到了不同的数
所以,只要改变
public static void box(){
int rows = 10;
int columns = 10;
int number = (int) (Math.random() * 26) + 65; // move this into loop
char[][] table = new char [rows][columns];
for (int r = 0; r < rows; r++){
for (int c = 0; c < columns; c++){
table[r][c] = (char) number;
System.out.print(table[r][c] + " ");
}//inner for loop
System.out.println();
}//outer for loop
另一件我会改变的事情是使用“A”而不是65。在我看来这更清楚了<代码>表[r][c]=(int)(Math.random()*26)+'A'代码>这个答案有问题吗?为什么会被否决?这个答案有问题吗?为什么会被否决?