随机生成器问题~JAVA

时间:2014-06-19 06:27:16

标签: java random

public static void main(String[] args)
    {
        final int ELEMENTS = 13;
        //int[] array = new int[ELEMENTS];
        char[] array1 = new char[ELEMENTS];
        printWord(array1);

    }

    public static void printWord(char[] array)
    {
        Random random = new Random();
        int[] letters = new int[array.length];
        for(int index = 0; index < array.length; index++)
        {
            letters[index] = random.nextInt(122)+97;
            System.out.println(letters[index]);

        }
        System.exit(0);
    }

我的问题出现在方法printword()中。当它为for循环中的字母分配一个随机整数时,随机方法将97添加到122而不是97-122之间的随机数。 问题:我总是以这种方式构建我的随机方法,现在它不工作原因?你可以帮我替代吗?

2 个答案:

答案 0 :(得分:0)

要在两个给定值之间生成随机数,请使用以下技术

int lowerBound = 97;
int upperBound = 127;
int randomValueInBound = random.nextInt(upperBound-lowerBound) + lowerBound

此外,您必须将整数转换为字符以显示字符,但我猜您已经知道

 System.out.println((char)letters[index]);

答案 1 :(得分:0)

您的代码存在一些问题,这可能会对您有所帮助

public static void printWord(char[] array)
{
    Random random = new Random();
    int[] letters = new int[array.length];
    for(int index = 0; index < array.length; index++)
    {
        letters[index] = random.nextInt((122+1) - 97) + 97;
        System.out.println((char)letters[index]);

    }
    System.exit(0);
}

refer了解更多信息