我真的很难用随机字母打印数组。如果有人可以帮助我那会很棒:)
public class CharFilter
{
public static void main(String args[])
{
int rows = 10;
int cols = 10;
char grid[][] = new char [rows][cols];
for(int i=0; i<grid.length;i++)
{
for(int j=0; j<grid[i].length;j++)
{
grid[i][j] = (char) (Math.random()*'a')+'b';
String gprint = "";
gprint = gprint + String.format("%2c", grid[i][j]);
System.out.println(gprint);
}
}
}
答案 0 :(得分:0)
您的代码不会为我编译,因为Math.random周围的括号应包括&#39; b&#39;,例如
grid[i][j] = (char) (Math.random()*'a'+'b');
我还会跳过将单个字符存储在一个字符串中,然后只打印每个字符,除非出于某种原因你需要这样做。
System.out.println(grid[i][j]);
而不是
String gprint = "";
gprint = gprint + String.format("%2c", grid[i][j]);
System.out.println(gprint);
最后,如果您特意尝试让网格只包含小写字母,那么您的公式就会有点偏差。使用
Math.random() * ('z' - 'a') + 'a'
因为随机将为您提供0到1之间的值,但您想要的范围是26(&#39; z&#39; - &#39; a&#39; ),而不是1,并且您希望初始值为&#39; a&#39;而非0。