猿问

input.next();//这句话是什么意思呢

    /** 二、创建两名玩家
     *玩家至少要有ID、姓名、手牌等属性,手牌为扑克牌的集合
     */
    public void addPlayers(){
            System.out.println("-------------创建玩家-----------------");
            int i = 1;
            while(true){
                System.out.println("请输入第"+i+"位玩家的ID和姓名:");
            try {
                System.out.println("输入ID:");
                int id = input.nextInt();
                Players pl = players.get(id);
                if( pl == null){
                    System.out.println("输入姓名:");
                    String name = input.next();
                    Players player = new Players(id,name);
                    players.put(id, player);
                    System.out.println("成功添加玩家:"+players.get(id).name+"\n");
                    i++;

                 }
                else{
                    System.out.println("该ID以已被占用!");
                    continue;
                }
                if(i > 2)
                    break;
            } catch (InputMismatchException e) {
                System.out.println("请输入整数类型的ID!");
                input.next();//这句话是什么意思呢
                continue;
            }
            }
            System.out.println("---------------玩家创建完成----------------");
            Set<Integer> keySet = players.keySet();
            for (Integer integer : keySet) {
                System.out.println("   ---------欢迎玩家:"+players.get(integer).name+"----------");
            }
            System.out.println();

   

溯源1
浏览 3513回答 3
3回答

Goraidh

input.next()接收用户控制台输入的字符串

末日泣歌

next()一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符 next()方法会自动将其去掉 只有在输入有效字符之后 next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符 简单地说 next()查找并返回来自此扫描器的下一个完整标记 完整标记的前后是与分隔模式匹配的输入信息 所以next方法不能得到带空格的字符串而且 你还写了nextInt() 而nextLine()方法的结束符只是Enter键 即nextLine()方法返回的是Enter键之前的所有字符 它是可以得到带空格的字符串的 意思就是说 nextInt()读到有效值后就结束 输完数字后按的回车符还存在 nextLine()读取到回车符就直接结束 所以结果就类似于跳过了该条输入语句总结一下就是 input.next()就是接收键盘输入的数据 用空格隔开的下一个字符串希望对你有所帮助
随时随地看视频慕课网APP

相关分类

Java
我要回答