public static void main(String[] args) { String str="bcedefg"; char[] arr = str.toCharArray(); Random ra=new Random(); for (int i = 0; i < arr.length; i++) { //每次随机数都会变 /*char temp=arr[i]; arr[i]=arr[ra.nextInt(arr.length)]; arr[ra.nextInt(arr.length)]=temp;//什么时候动 */一开始字错了,没有在定义一个int变量导致错误, 观察和改错提升,要想到ra.nextInt(arr.length)是变化的,这个两个数进行交换 int max=ra.nextInt(arr.length); char temp=arr[i]; arr[i]=arr[max]; arr[max]=temp; } String s=new String(arr); System.out.println(s); }