如何使 StdIn.isEmpty() 返回 true?

2024-01-29

我正在使用算法 Coursera 算法课程中提供的普林斯顿库中的 StdIn.isEmpty() 方法,但对其工作原理感到困惑。我有声明

while (!StdIn.isEmpty())

附带一些读取用户输入的代码,但我似乎无法跳出循环。根据我的理解,如果我按回车键而不输入任何文本,则意味着标准输入为空,并且 while 循环应该被打破。我查找了 isEmpty 的代码,但它没有澄清任何内容:

public static boolean isEmpty() {
    return !scanner.hasNext();
}

有人可以澄清标准输入的工作原理并帮助我纠正对此方法的误解吗?


在读取每个数字之前,程序使用 StdIn.isEmpty() 方法检查输入流中是否还有更多数字。我们如何表明我们没有更多数据可输入?按照惯例,我们键入一个特殊的字符序列,称为文件结尾序列。不幸的是,我们在现代操作系统上通常遇到的终端应用程序对这个极其重要的序列使用不同的约定。在本书中,我们使用 Ctrl-D...计算机科学塞奇威克

所以isEmpty实际上是isCtrl-D.

另外,尝试一下StdIn.isEmpty()在终端应用程序中,如果事先没有任何内容,那么您将没有布尔值,而是请求输入的标准输入流。因此,当像下面这样的程序运行时:

public class Average
  {
     public static void main(String[] args)
     {  // Average the numbers on standard input.
        double sum = 0.0;
        int n = 0;
        while (!StdIn.isEmpty())
        {  // Read a number from standard input and add to sum.
           double value = StdIn.readDouble();
           sum += value;
           n++;
        }
        double average = sum / n;
        StdOut.println("Average is " + average);
     }
 } 

,当决定条件时弹出标准输入流while (!StdIn.isEmpty)第一次而不是StdIn.readDouble()。如果您随后输入一些数字并返回它们,导致标准输入流非空,则程序将跳转到 while 体内。我通过测试发现是这种情况

> java Average
 [DrJava Input Box] (And I hit Ctrl+D here)
Average is NaN

NaN 意味着 n = 0,这意味着当身体没有被触摸时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 StdIn.isEmpty() 返回 true? 的相关文章

  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • JavaScript 中的埃拉托斯特尼筛法对大量数据无限运行

    我一直在尝试写埃拉托斯特尼筛法 http en wikipedia org wiki Sieve of EratosthenesJavaScript 中的算法 基本上我只是按照以下步骤操作 创建从 2 到 n 1 的连续整数列表 令第一个素
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • 获取 a.foreach 不是函数错误

    我正在尝试使用 Angular js 构建一个多选列表 我收到一个奇怪的 TypeError a foreach 不是一个函数 我似乎不知道什么时候发生 js var myAppModule angular module multisele
  • IIS asp.net mvc 部分?上传文件

    鉴于以下代码非常通用 我希望有人能告诉我一些幕后发生的事情 HttpPost public ActionResult Load Guid regionID HttpPostedFileBase file if file ContentLen
  • 如何在另一个C++程序中运行一个C++程序?

    我有一个简单的 C 程序 它接受输入并输出一些字符串 像这样 game what kind of game type r for regular s for special r choose a number from 1 10 1 no
  • 角业力跑步者无限期挂起

    Windows 8 64 位 Node js 0 10 5 64 位 业力 0 8 5 我能够启动 karma 服务器 Chrome 浏览器打开 我将其定义为 karma 配置中的默认浏览器 当我进行 业力奔跑 时 问题就出现了 Chrom
  • 用于存储 RGB 字符串的枚举 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我以前从未使用过枚举 所以我发现它们非常令人困惑 我想存储大量 RGB 值 作为字符串 并且我认为枚举是最好的选择 而不是列出静态最终字符
  • 使用 LinqToCSV 将 CSV 写入 MemoryStream 不会返回任何数据

    我已经验证使用System Text Encoding ASCII GetString ms ToArray 我的内存流有预期的数据 但是 使用 LinqToCSV nuget 库不会生成我的 csv 文件 我没有收到任何错误或异常抛出 当
  • 多个“++”在变量和指针中工作

    这就是我认为的 操作员做 a a 1 after calculating this line a a 1 before calcuating this line 我正在尝试研究指针 我认为我误解了一些东西 int a 10 int arr
  • 使用rapidjson检索JSON字符串内的嵌套对象

    我需要检索 JSON 字符串内的嵌套对象 并且我正在尝试使用 rapidjson 来完成此操作 我发现的只是如何检索数组和基本类型 而不是子对象 我创建了以下给出错误的玩具示例 rapidjson Document document std
  • 从扩展更新 UIApplicationShortcutItem

    我正在为应用程序构建 Today Extension 它对于修改我的应用程序数据非常有用 但现在我的动态UIApplicationShortcutItems不同步 我无法访问UIApplication shared从我的分机 有没有办法要求
  • 如何使用 CSS 为多个图像设置不同的样式?

    我基本上是在设计一篇长文 其中散布着各种图像 我希望第一张图像 浮动 左 第二张图像 浮动 右 我知道我可以像这样设计图像 img float left 这使得每张图像都具有相同的风格 如何为每张图像设置不同的样式 我尝试将每个图像放在不同
  • 一个关于facebook评论插件的简单问题

    我正在努力解决一个非常简单的问题 Facebook 文档一如既往地没有给我足够的解释 我在我的网站上附加了一个 Facebook 评论插件 并使用 comment create 事件的回调 我可以获得刚刚创建的评论的信息 FB Event
  • jQuery 调用中的哈希符号

    作为一名务实的编码员 我往往会错过一些明显的事情 我想知道 有什么区别 loc loc 信息越多 关于 的来龙去脉就越好 loc is an 元素选择器 http api jquery com element selector 寻找
  • Flexjson 和 Dexguard/Proguard

    当涉及到 flexjson 库时 我在使用 dexguard 时遇到问题 尝试使用 JSONDeserializer 反序列化时 我不断收到以下错误 09 15 20 46 10 271 10901 11552 A art sart run
  • 如何在 iOS 图表中的 X 轴上添加字符串?

    在新版本中 我在创建一些图表时遇到了一些麻烦 以前的代码是 func setChart dataPoints String values Double var dataEntries BarChartDataEntry for i in 0
  • 从 sqlplus 调用存储过程

    如何从sqlplus调用存储过程 我有一个程序 Create or replace procedure testproc parameter1 in varachar2 parameter2 out varchar2 begin Do so
  • 如何将 mypy 与派生类和方法调用一起使用?

    我正在与 mypy 作斗争 不明白我想要传递一个派生类 其中代码接受基类或任何派生类的实例 并在该传递的实例上调用方法 My code from typing import Type import abc class Base abc AB
  • 当从另一个线程修改对象属性时引发 OnPropertyChanged

    所以我有这个对象 public class SomeObject INotifyPropertyChanged public decimal AlertLevel get return alertLevel set if alertLeve
  • jquery中如何获取的值?

    您好 我正在尝试从 jquery 获取 p selectOneMenu 的值 但我还没有得到 我使用 JSF 和 primefaces 作为我的 UI 组件
  • 阿拉伯文本在 web 应用程序中显示,无需更改数据库

    当用户输入阿拉伯语名称和密码时 我应该检索该用户的数据 在java中 我使用utf 8编码 我应该从数据库中以阿拉伯文本的形式检索数据 我使用的数据库是 sql server 2005 并且该列设置为 varchar 而不是 nvarcha
  • 如何使 StdIn.isEmpty() 返回 true?

    我正在使用算法 Coursera 算法课程中提供的普林斯顿库中的 StdIn isEmpty 方法 但对其工作原理感到困惑 我有声明 while StdIn isEmpty 附带一些读取用户输入的代码 但我似乎无法跳出循环 根据我的理解 如