moyv 2022-08-14 11:05 采纳率: 88.9%
浏览 61
已结题

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

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

  • 写回答

3条回答 默认 最新

  • 阿杆. 优质创作者: Java技术领域 2022-08-14 11:23
    关注

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

        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)] + "喜提寝室长");
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月22日
  • 已采纳回答 8月14日
  • 请详细说明问题背景 8月14日
  • 修改了问题 8月14日
  • 展开全部