如何使 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? 的相关文章

  • 我需要在 Spring 中检查每个控制器中的有效会话吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设在 Spring Mvc 的 Web 应用程序中 我们是否需要检查每个控制器或 jsps 中的有效会话 我该如何解决 MVC 中的
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour

随机推荐

  • 获取 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 附带一些读取用户输入的代码 但我似乎无法跳出循环 根据我的理解 如