当前位置: 首页 > 知识库问答 >
问题:

当用户输入错误类型的数据时,如何停止程序?

匡祖鹤
2023-03-14

嘿,我必须要求用户使用JOptionPane购买金额,如果他们输入超过两位小数点后,什么都没有,字符,或超过一个小数点,程序必须显示错误消息并停止。

我该怎么做?

我不希望有人为我写程序,只是一个链接,解释我将如何做

  String PurchaseAmount = JOptionPane.showInputDialog(null, String.format("What is your purchase amount?")); 
  double PurchaseTotal = Double.parseDouble(PurchaseAmount);

  String PaymentAmount = JOptionPane.showInputDialog(null, "What is the payment amount?");
  double PaymentGiven = Double.parseDouble(PaymentAmount);

如果用户输入“12.526”或“1.3.25”或“abc”,我希望程序显示错误信息并停止。

因为这似乎是一个令人困惑的问题,或者我问得不正确,所以我的老师给出了正确的指导:

  1. 程序必须要求用户输入购买金额,使用JOptionPane.showInputDialog
  2. 程序必须要求用户输入支付金额,使用JOptionPane.showInputDialog
  3. 程序必须捕获不正确的输入(空,空,字符,一个以上的小数点,两个以上的小数位(即。3.567))显示错误信息并停止程序执行。

共有1个答案

孔睿
2023-03-14

您需要编写一个方法来验证输入。这可以分步骤完成:

首先将输入拆分为“。”

  • 如果结果数组的长度

(或者,您可以使用正则表达式而不是一系列测试。这可能是一个更好的解决方案,但我认为如果您使用正则表达式,您将不得不维护它,因此您必须从学习编写它开始。)

当您返回验证时,如果条目通过,则解析它并继续执行下一步。如果为false,则以某种合理的方式退出(最好不要通过System.exit()-您希望能够以优雅的方式终止)

 类似资料:
  • 问题内容: 用户停止键入时需要执行搜索。我知道我应该使用 setTimeout() 。但是使用 Reactjs我找不到它是如何工作的。 有人可以告诉我当用户停止键入几秒钟(假设为5)时如何调用方法(将处理Search)。我不知道该在哪里编写代码来检查用户是否停止键入。 我想在用户停止键入时调用sendToParent方法。 问题答案: 您可以按照以下方式使用您的代码, 另外,您需要在构造函数中绑定

  • null 所以我面临一个问题,如果打开,等待输入,如何停止它?我尝试过将它放在线程中并或使用作为标志,但它并没有停止

  • 我想在用户使用Scanner输入时验证数据类型(在我的情况下是“int”)。 我在下面写了代码。 问题是,在第一个块中,若我给字符,程序终止。“如何在验证失败时保持循环运行??” 在第二个块中,如果我给出非整数,它将无限运行,并显示消息“仅输入整数值”。 从调试中,我得出结论,在不等待输入的情况下,它采用之前提供的最后一个非int值。 为什么编译器取最后一个值?? 有什么建议吗?

  • 问题内容: 这是一些示例代码: 如果我运行该程序并将其设置为 like ,则一切正常。 另一方面,如果我回答,那不会嘲笑我的有趣笑话。相反,我得到这个(如预期的那样): 有没有一种方法可以使它忽略不是int的条目,或者用“有多少个入侵者”重新提示?我想知道这两种方法。 问题答案: 你可以使用的诸多一个是方法有预验证。 这可以防止从甚至被抛出,因为你总是确保它WILL你读它之前匹配。 java.ut

  • 我通过创建固定数量的线程来使用执行器服务来进行HTTP GET数据检索。 当Tomcat停止时,我们会出现以下错误: 严重:web应用程序[/viewer]似乎已启动名为[ThreadExecutor_51616156]的线程,但未能停止该线程。这很可能会造成内存泄漏。 这是真的吗?在没有这些服务错误的情况下,如何正确停止tomcat。

  • 我正在使用python创建一个控制Tkinter窗口的类对象。我的代码如下所示: 我希望能够启动一个类的实例,然后像这样停止它: 一切正常,窗口在上成功创建,单击按钮并执行时窗口消失。问题是主循环继续运行。我必须使用Ctrl C手动杀死程序,它显示它在。 如果我只是在一个普通的文件中而不是在一个类中执行所有tkinter代码,那么一切都是一样的,但是当我在root上调用destroy时,mainl