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

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日

悬赏问题

  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下