小小ironman 2022-03-03 20:18 采纳率: 100%
浏览 74
已结题

Scanner同时读取数字和字符串时的问题

详见代码:

 public static void test(){
        Scanner scanner=new Scanner(System.in);
        ////////读取整数/////////
        int a=0,b=0;
        if (scanner.hasNextLine()) //会在这里挂起程序 相当与while(true) 直到键盘输入回车
        {
            a=scanner.nextInt();
            b=scanner.nextInt();
        }
        System.out.println(a+" "+b);

      /*//////读取double////////*/
        double c=0,d=0;
        if (scanner.hasNextDouble()){
            c=scanner.nextDouble();
            d=scanner.nextDouble();
        }
        System.out.println(c+" "+d);

        //////////////读取字符数组 空格分开/////////////////////////

        String inputString=new String();
        /*不加下面这句判断语句,就无法读取字符串,为什么???*/
        if(scanner.hasNextLine())
        {
           scanner.nextLine();
        }
        inputString=scanner.nextLine();
        String[] strings=inputString.split(" ");
        char[] chars=new char[strings.length];
        for (int i = 0; i < strings.length; i++) {
            chars[i]=strings[i].charAt(0);
        }
        for (int i = 0; i < chars.length; i++) {
            System.out.print(chars[i]+" ");
        }
    }
  • 写回答

4条回答 默认 最新

  • EngineZhang 2022-03-04 09:17
    关注

    通过debug可以很容易发现问题,在图中的位置加上端点

    img


    在调试时强制进入就能看到下边的结果

    img


    由此我们就可以知道,其实不是无法读到,而是读到了‘\n’也就是换行这个不可见字符

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 创建了问题 3月3日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度