Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成随机字符串,缺少一个字母_Java_Arrays_Random_Casting_Rounding - Fatal编程技术网

Java 生成随机字符串,缺少一个字母

Java 生成随机字符串,缺少一个字母,java,arrays,random,casting,rounding,Java,Arrays,Random,Casting,Rounding,我在尝试生成随机大小的随机字符串(3到20之间)时遇到了一个小问题。我有一个数组arr,它包含从a(小写)到Z(大写)的所有字符。然后,我为第二个数组arr2生成一个随机长度arrLength,该数组将包含一些随机选择的字符 我的问题是字母“a”(小写)从未出现在随机生成的字符串中。我认为错误可能在for循环中,但到目前为止我没有看到它。也许它与(int)铸造或数学地板四舍五入有关 char[] arr = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMN

我在尝试生成随机大小的随机字符串(3到20之间)时遇到了一个小问题。我有一个数组
arr
,它包含从a(小写)到Z(大写)的所有字符。然后,我为第二个数组
arr2
生成一个随机长度
arrLength
,该数组将包含一些随机选择的字符

我的问题是字母“a”(小写)从未出现在随机生成的字符串中。我认为错误可能在
for
循环中,但到目前为止我没有看到它。也许它与
(int)
铸造或
数学地板
四舍五入有关

    char[] arr = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
    int arrLength = (int) (Math.floor((Math.random() * ((17 - 3) + 1)) + 3));
    char[] arr2 = new char[arrLength];
    String str = "";

    for(int i=0;i<arrLength;i++) {
        char num = arr[(int) (Math.floor(Math.random() * (50) + 1))];
        arr2[i] = num;
    }
char[]arr=“abcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuvxyz.toCharArray();
int arrLength=(int)(数学地板((数学随机()*((17-3)+1))+3));
char[]arr2=新字符[arrLength];
字符串str=“”;

对于(int i=0;i而不是魔常数
50
使用
arr.length
(注意数组中有50多个字符)并省去
+1
,因为它使Java中可以得到的最小数为1,数组索引从0开始。

而不是魔常数
50
使用
arr.length
(注意数组中的字符数超过50个)去掉
+1
,因为它是Java中可以得到的最小数字,数组索引从0开始。

我怀疑这是数学中的+1。floorI怀疑这是数学中的+1。FloorTanks,起作用了!问题是我从八度转换了这段代码,数组索引从1开始,我完全忘记了。比ks,成功了!问题是我从八度转换代码,数组索引从1开始,我完全忘记了。