快捷导航

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 keySet = players.keySet();            for (Integer integer : keySet) {                System.out.println("   ---------欢迎玩家:"+players.get(integer).name+"----------");            }            System.out.println();

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

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

使用道具 举报

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

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP