字符阵列打印随机字符

时间:2017-01-11 18:09:50

标签: java arrays char

我真的很难用随机字母打印数组。如果有人可以帮助我那会很棒:)

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);
        }
    }
}

1 个答案:

答案 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。