java吧 关注:1,272,215贴子:12,780,449
  • 7回复贴,共1

大佬解答一下

只看楼主收藏回复

package src.test;
import java.util.Random;
public class test32 {
public static void main(String[] args) {
String[] ABC = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
Random r = new Random();
int math = r.nextInt(10);
String yanzhenma = "";
for (int i = 0; i < 4; i++) {
int A = r.nextInt(ABC.length) - 1;
yanzhenma += ABC[A];
}
yanzhenma += math;
System.out.println(yanzhenma);
}
}
运行这个的时候会出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 52 at src.test.test32.main(test32.java:13)
在cmd里面运行也会出错
咋办啊


IP属地:上海1楼2024-07-24 18:20回复
    是偶尔出现的有时候能正常运行


    IP属地:上海2楼2024-07-24 18:21
    回复
      2025-08-02 14:39:33
      广告
      不感兴趣
      开通SVIP免广告
      你赋值给A的时候,有可能是-1哇,随机数是0然后-1


      IP属地:四川来自Android客户端3楼2024-07-24 18:32
      收起回复
        这不都告诉你了么,数组下标越界。nextint(10)是取0到9之间的数,假如随机到了0,再减1不就变成-1了,数组的下标咋可能取-1。


        IP属地:广东来自Android客户端4楼2024-07-24 18:35
        回复
          装个通义灵码插件,一般小问题问它就行。


          IP属地:黑龙江5楼2024-07-25 14:59
          回复