扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

2023-11-25

我正在使用Scanner方法nextInt() and nextLine()用于读取输入。

它看起来像这样:

System.out.println("Enter numerical value");    
int option;
option = input.nextInt(); // Read numerical value from input
System.out.println("Enter 1st string"); 
String string1 = input.nextLine(); // Read 1st string (this is skipped)
System.out.println("Enter 2nd string");
String string2 = input.nextLine(); // Read 2nd string (this appears right after reading numerical value)

问题是,输入数值后,第一个input.nextLine()被跳过,第二个input.nextLine()被执行,所以我的输出如下所示:

Enter numerical value
3   // This is my input
Enter 1st string    // The program is supposed to stop here and wait for my input, but is skipped
Enter 2nd string    // ...and this line is executed and waits for my input

我测试了我的应用程序,看起来问题在于使用input.nextInt()。如果我删除它,那么两者string1 = input.nextLine() and string2 = input.nextLine()按照我想要的方式执行。


那是因为Scanner.nextInt方法不读取newline通过按“Enter”创建输入中的字符,因此调用Scanner.nextLine读完后返回newline.

当你使用时你会遇到类似的行为Scanner.nextLine after Scanner.next() or any Scanner.nextFoo方法(除了nextLine本身)。

解决方法:

  • 要么放一个Scanner.nextLine每次之后打电话Scanner.nextInt or Scanner.nextFoo消耗该行的其余部分,包括newline

    int option = input.nextInt();
    input.nextLine();  // Consume newline left-over
    String str1 = input.nextLine();
    
  • 或者,更好的是,通过读取输入Scanner.nextLine并将您的输入转换为您需要的正确格式。例如,您可以使用转换为整数Integer.parseInt(String) method.

    int option = 0;
    try {
        option = Integer.parseInt(input.nextLine());
    } catch (NumberFormatException e) {
        e.printStackTrace();
    }
    String str1 = input.nextLine();
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()? 的相关文章

  • 无法在 Android 10 中创建目录

    我无法在 android 10 中创建目录 它可以在 android Oreo 之前的设备上运行 我尝试了两种创建文件夹的方法 Using File mkdir File f new File Environment getExternal
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • 禁用 Eclipse Java 调试器的热代码替换 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Eclipse 中禁用热代码替换 https stackoverflow com questions 2594408 how do i disable hot code replace in
  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • 为什么 java 编译器不报告 Intellij 中多播表达式的未经检查的强制转换警告?

    为什么下面的代码没有报告 Intellij IDEA 的未经检查的警告jdk 1 8 0 121自从Supplier
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 内存一致性 - Java 中的happens-before关系[重复]

    这个问题在这里已经有答案了 在阅读有关内存一致性错误的 Java 文档时 我发现与创建 发生 之前 关系的两个操作相关的点 当语句调用时Thread start 每个具有 与该语句发生之前的关系也有一个 与 new 执行的每个语句之间发生的
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文

随机推荐

  • 设置断点并调试评估的 JavaScript

    I am using client side JS to parse XML files and generate complex JS code to eval as a result Generating re usable funct
  • git-apply 或 git-am 应该得出相同的哈希值吗?

    我想我错过了一些东西 我的印象是 git 使用 SHA 1 哈希提交标识符意味着可以确定从其他人那里获得的该提交的补丁没有被更改 进行我在我的机器上所做的测试 显然 姓名和电子邮件已更改 cd dogcatcher dogcatcher g
  • Python 3 asyncio 与 aioboto3 似乎是连续的

    我正在将一个简单的 python 3 脚本移植到 AWS Lambda 该脚本很简单 它从十几个 S3 对象收集信息并返回结果 使用的脚本multiprocessing Pool并行收集所有文件 尽管multiprocessing不能在 A
  • StatusCodeException 对比GWT 中的运行时异常

    在我的 GWT 应用程序中 我重写了 RemoteServiceServlet 以在调用服务方法之前检查会话是否有效 我试图从服务器抛出 RuntimeException expired session 我希望客户端从 asynccallb
  • Python Tkinter 文本区域将光标设置为结束

    我有一个 TkinterText 对象 我使用以下方法向其添加行 insert END string 当文本填充可用区域时 我希望它向下滚动以显示视图中文本的底行 但它不会滚动 意味着用户必须滚动自己才能看到最新的文本 我已经看过了mark
  • setuid 和 seteuid 函数的区别

    程序 1 setuid 示例 include
  • 从 .NET Windows 服务调用 Shell32.dll

    我有一个 NET 4 0 库 它使用 Shell32 和 Folder GetDetailsOf 从 WTV 文件获取元数据 我已成功地将它与控制台和 Windows 窗体应用程序一起使用 没有出现任何问题 但由于某种原因 当从 NET 4
  • 为什么 sed 替换 + 重定向删除了我的文件?

    我正在使用 sed 搜索并替换 bash 文件中的两个字符串 GNU sed 这是之后的文件 rw r r 1 websync www data 4156 mar 27 12 56 home websync tmp sitio oficia
  • 在哪里可以获取有关 JavaScript 函数的对象参数语法的信息?

    如果我想调用这样的函数 moo a 4 通常我必须这样表述我的函数定义 function moo myArgObj print myArgObj a 但是这个很棒的语法在 Spidermonkey 中用于定义函数是完全有效的 functio
  • GAS 性能比其他服务器端 JavaScript 慢

    正在研究一个Google Sites网站 它从电子表格中获取数据并动态构建多个图表 我提到 Google Apps 脚本运行速度相当慢 我分析了代码并对其进行了优化 方法是使用Cache服务 只要有可能 优化后 图表代码大约需要花费时间 3
  • 仅授予对 postgreSQL 中一个模式的访问权限

    我有一个用户just one schema user 在我的数据库中 我有两个模式 public and sample 我怎样才能让这个用户只看到sample 这就是我所做的 GRANT USAGE ON SCHEMA sample TO
  • 如何判断两个物体是否相交?

    我使用以下代码来创建对象并为其设置动画 For creating two imageview UIImageView bbl1Obj UIImageView alloc initWithFrame CGRectMake 34 77 70 7
  • Codeigniter 中的挂钩

    如何在 CodeIgniter 中仅调用少数控制器而不是所有控制器的钩子 例如 我只想为管理部分运行挂钩 我怎样才能实现这个目标 在您希望有选择地运行的挂钩中 您可以使用以下命令访问 ci 超级对象 this gt ci get insta
  • CKEditor 4 - 如何设置默认字体?

    我使用 CKEditor 4 我想设置默认字体 我用我的字体选择添加了 font defaultLabel 但它不起作用 我在互联网上找到了这个解决方案 但这对我来说是一个技巧 而不是真正的解决方案 CKEDITOR on instance
  • 如果记录存在,则更新,否则插入

    我正在尝试在两个 SQL Server 2008 表之间移动一些数据 如果表 2 中存在包含表 1 中的电子邮件的记录 则使用表 1 中的数据更新该记录 否则插入新记录 在表 1 中 我有很多列 名字 姓氏 电子邮件等 我不太确定如果表 1
  • 使用 WinSCard 获取 PCSC 读卡器序列号

    如果读卡器中没有卡 我在获取 PCSC 读卡器序列号时遇到问题 我正在使用winscard dll 和c 以下代码仅适用于读卡器中存在卡的情况 否则 不会检索 SCardHandle 我还没有找到任何其他方式来获取 SCardHandle
  • Firestore REST API 数据库监听

    您知道如何使用 REST API 设置 Firestore 监听吗 这是我的尝试 url https firestore googleapis com v1beta1 projects project name databases defa
  • 尝试访问 C 中字符串上的字符时出现总线错误

    我已经多次使用这行代码 更新 当字符串是函数的参数时 但是当我现在尝试这样做时 我收到总线错误 无论是使用 gcc 还是 clang 我正在重现最简单的代码 char string this is a string char p strin
  • Java:如何检查是否可以获得锁? [复制]

    这个问题在这里已经有答案了 如果我想确保对 Java 中的对象进行独占访问 我可以这样写 Zoo zoo findZoo synchronized zoo zoo feedAllTheAnimals 有没有办法检查对象当前是否被锁定 如果另
  • 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

    我正在使用Scanner方法nextInt and nextLine 用于读取输入 它看起来像这样 System out println Enter numerical value int option option input nextI