public static void main(String[] args) { Random r = new Random(); char[]arr = initArray(r); System.out.println("洗牌前:"); System.out.println(arr); change(arr,r); System.out.println("洗牌后:"); System.out.println(arr); } //初始化数组 static char[] initArray(Random r){ char[]arr = new char[4]; for(int i = 0;i<arr.length;i++){ if(r.nextBoolean()){//小写 arr[i] = (char)('a'+r.nextInt(26)); }else{//大写 arr[i] = (char)('A'+r.nextInt(26)); } } return arr; } static void change(char[]arr,Random r){ int rand;//每次随机产生的下标 char tmp;//数组最后面的某个元素 for(int i = arr.length-1;i>0;i--){ rand = r.nextInt(i+1); tmp = arr[i]; arr[i] = arr[rand]; arr[rand] = tmp; } }