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