您现在的位置是:首页 > 正文

Scanner的nextLine()方法读不到数据的小坑

2024-01-30 23:01:40阅读 0

项目场景:

使用Scanner的nextLine()方法获取数据的时候出现了问题,一般发生在和next(),nextInt()等类似方法混用的时候


问题描述

例如:以下这段代码,本意应该是在控制台输入两行数据,输入一行立刻输出一行。

Scanner in = new Scanner(System.in);
String s1=in.next();
System.out.println(s1);
String s2=in.nextLine();
System.out.println(s2+"==");

实际上输出的结果

可以看到我明明只输入了一行代码却执行完了


原因分析:

输入完按下回车时,next()或者nextInt()会读取有效数据并把光标停在回车之前,这样nextLine()会读到上一行代码遗留的那个回车键然后直接输出,从而产生以上问题


解决方案:

连续读取的时候都采用nextLine()方法,不要和next()或者nextInt()混用,虽然nextLine()方法也会读取有效数据并把光标停在回车之前,但是第二个nextLine()方法会自动识别第一个回车和第二个回车之间的数据,代码可以这样改:

Scanner in = new Scanner(System.in);
String s1=in.nextLine();
System.out.println(s1);
String s2=in.nextLine();
System.out.println(s2+"==");

网站文章

  • 模版模式的应用实际举例 热门推荐

    模版模式的应用实际举例 热门推荐

    模版模式应该是工作中最常用的设计模式之一,直白的讲就是如果的一些处理方式是有一定的模版流程处理的,那么在应用中使用该模式在合适不过了。对于其基本的业务应用,我简单写了以下三个基本的通用模版(业务失败重试机制、业务前置检查流程模版、Thrift远程调用处理模版)来展示,有问题的可以留言纠正,谢谢!

    2024-01-30 23:01:34
  • 二叉树的层序遍历,非递归,c/c++描述,输出所有叶节点到根节点路径

    二叉树的层序遍历,非递归,c/c++描述,输出所有叶节点到根节点路径

      二叉树的层序遍历,按从上往下,从左往右的顺序遍历二叉树。同一行的兄弟、堂兄弟节点之间,没有直接必然的连接关系。所以我们很难根据同一行中的一个节点来确定同行中其他节点的是否存在,节点位置在哪里。这里...

    2024-01-30 23:01:24
  • java 反射获取bean、执行指定方法。

    java 反射获取bean、执行指定方法。

    (当然这个类中你可以多定义几个方法,太多就不贴上来了)@GetMapping("/reflect.do") @ApiOperation(value = "反射获取bean") @ApiImplicitParams({

    2024-01-30 23:00:55
  • 联软科技产品「准入」存在任意文件上传和命令执行漏洞

    联软科技产品「准入」存在任意文件上传和命令执行漏洞

    1、准入系统概述网络准入这一概念是由思科发起、后续由华为、联软、北信源等多家厂商根据此概念,基于在NACC、802.1x、EOU、WebAuth、MAB、IAB的基础上进行自主研发的一门新兴技术。其宗...

    2024-01-30 23:00:48
  • Linux 桌面系统开机自动启动

    桌面脚本文件编写:[Desktop Entry]Version=1.0Type=ApplicationTerminal=falseExec=/test/test.shName=TestIcon=/test/test.ico文件名为test.desktop存放路径为:cp -rf test.desktop /root/.config/autostart/.

    2024-01-30 23:00:41
  • 蓝牙协议分析(7)_BLE连接有关的技术分析

    蓝牙协议分析(7)_BLE连接有关的技术分析

    1. 前言了解蓝牙的人都知道,在经典蓝牙中,保持连接(Connection)是一个相当消耗资源(power和带宽)的过程。特别是当没有数据传输的时候,所消耗的资源完全被浪费了。因而,对很多蓝牙设备来说...

    2024-01-30 23:00:16
  • 判断字符串是否是数字HTML,jquery怎么判断字符串是否为数字?

    判断字符串是否是数字HTML,jquery怎么判断字符串是否为数字?

    jquery判断字符串是否为数字的方法:1、使用isNaN()函数判断var val = $("#test").val();var ival = parseInt(val);//如...

    2024-01-30 23:00:08
  • python爬虫分享

    python爬虫分享

    1、爬取网站:、项目说明:根据model进行分类,model下面有图集,图集下面是图片3、使用依赖:4、代码:(注意:下载图片有反爬虫,①需要添加headers,②模拟浏览器操作注意随机sleep)提示:爬完之后注意检查一下是否爬取完毕,哪个文件夹里面不对,就把它删除之后,重新跑程序,之前爬取的不会再爬取。............

    2024-01-30 23:00:01
  • May Day Holiday

    As a university advocating self-learning and work-rest balance, Marjar University has so many days of rest, including holidays and weekends. Each weekend, which consists of Saturday and Sunday, is a

    2024-01-30 22:59:52
  • Java集合源码浅析(一) : ArrayList

    Java集合源码浅析(一) : ArrayList

    (尊重劳动成果,转载请注明出处:https://yangwenqiang.blog.csdn.net/article/details/105317442冷血之心的博客) 背景 一直都有这么一个打算,那...

    2024-01-30 22:59:23