告诉我错哪了,我改,我改还不行吗

import java.util.Random;
import java.util.Scanner;
public class WhoIsTheDormitoryLeader {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入有几位同学:");
        int a = scanner.nextInt();
        System.out.println("请输入姓名:");
        String[] s = new String[a];
        for(int i = 0;i < a;i++){
            s[i] = scanner.nextLine();
        }
        Random random = new Random();
        System.out.println(s[random.nextInt(a)] + "喜提寝室长");
    }
}

聂莫琪
陶梦嫣
王娇彤
崔婉莺

img

楼主,你这个可能是因为你下面多打了一个回车进去,然后它也读到数组里面了
我直接拿你的代码测试,正常的输入输出,多次测试得出的结果都是正常的,但是在输入的最后多敲几个回车也出现了你那样的情况,所以应该是读数据把回车也读进去了。
这里测试截图就不放了,帮你优化了一下代码

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入有几位同学:");
        int a = scanner.nextInt();
        System.out.println("请输入姓名:");
        String[] s = new String[a];
        for (int i = 0; i < a; i++) {
            s[i] = scanner.nextLine().trim(); // 删除前后的空格
            if ("".equals(s[i])) i--; // 如果是空数据就不读
        }
        Random random = new Random();
        System.out.println(s[random.nextInt(a)] + "喜提寝室长");
    }

在int a下面一行添加一行,scanner.nextline()就行了

正如你们所见,我是纸嫁衣铁粉