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

时间:2014-12-08 07:17:50

标签: java joptionpane

嘿我必须使用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 个答案:

答案 0 :(得分:1)

您需要编写一种方法来验证输入。这可以分步进行:

首先将输入拆分为“。”

  • 如果结果数组的长度> 2,则返回false
  • 如果数组中第二个字符串的长度> 2,则返回false
  • 如果第一个字符串未解析为double,则返回false
  • 等等,完成所有使这个真实的条件
  • 如果它通过了所有测试,则返回true

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

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