为了账号安全,请及时绑定邮箱和手机立即绑定

如何随机化一个字符的值?

如何随机化一个字符的值?

当年话下 2021-09-26 16:59:28
所以,我的问题是,我有一个二维字符数组。我想遍历每个元素,并随机为它们分配一个值。到目前为止,这是我的代码:private char [][] generateTable(int rows, int columns){        char [][] table = new char [rows][columns];        return table;    }private void tableFiller(char [][] table){        for (char[] row : table) {            for (char character : row) {                randomize(column);            }        }    }ublic static void randomize(char character){        Random random = new Random();        if (random.nextInt(100) < 50){            character = '.';        } else {            character = '*';        }    }现在,随机生成器方法不起作用,无法弄清楚原因。IDEA 建议我从未使用分配给字符的值,但这无济于事。我怎样才能使这种方法起作用?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

这是问题所在: void randomize

您的 randomize 方法返回 void,但它应该返回一个字符。

然后,应该在调用函数的地方使用该字符,方法是将其分配给相关的数组索引。我建议您基于数组索引进行循环以使分配更容易。

例如,而不是:for (char character : row)你会写:for (int i=0; i<row.length; i++)


查看完整回答
反对 回复 2021-09-26
?
白板的微信

TA贡献1883条经验 获得超3个赞

因为char不是参考。为了让它工作,你应该改变你的 randomize 方法:


public static char randomize(){

    Random random = new Random();

    char character;

    if (random.nextInt(100) < 50){

        character = '.';

    } else {

        character = '*';

    }

    return character;

}

并按如下方式调用它:


character = randomize();


查看完整回答
反对 回复 2021-09-26
?
米脂

TA贡献1836条经验 获得超3个赞

您需要使用值来设置字符对象 character = randomize(column);


private void tableFiller(char [][] table){

    for (char[] row : table) {

        for (char character : row) {

           character = randomize(column);

        }

    }

}

或者


随机化(字符);


private void tableFiller(char [][] table){

    for (char[] row : table) {

        for (char character : row) {

           randomize(character);

        }

    }

}


查看完整回答
反对 回复 2021-09-26
  • 3 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信