我有一点问题需要帮助。
对于此作业(第12课HW9)名称NumberFormatException,我必须在下面执行以下操作
" Calculator.java,是一个简单的命令行计算器。请注意,如果任何操作数是非数字的,程序将终止。使用处理非数字操作数的异常处理程序编写程序。您的程序应显示一条消息,在退出之前通知用户错误的操作数(参见下图)。"
c:\exercise>java Exercise12_01 "4 + 5"
4 + 5 = 9
c:\exercise>java Exercise12_01 "4 - 5"
4 - 5 = -1
c:\exercise>java Exercise12_01 "4x - 5"
错误的输入:4x 因此编码的所有数学部分都已完成,正确且有效,我似乎无法弄清楚的唯一部分是:"显示一条消息,在退出"之前通知用户错误的操作数。输入错误:4x。我需要知道我能做什么不仅显示错误消息,还显示错误输入。它向用户显示错误消息的部分位于
代码的末尾另外一点我忘了提及。问题是用户可能只得到" N"或" V"错了,我不知道如何只保留错误的变量,而只留下另一个变量 EX:如果用户输入4x - 5(即N - V),我只想发布4x(N)而不是5(V),这样我就可以向用户显示输入错误了
catch(InputMismatchException ex)
{
System.out.println("Bad input, please correct your operard.");
} //need to add the input error as well
这里是完整的代码,谢谢
import java.util.InputMismatchException;
import java.util.Scanner;
public class NumberFormatException {
public static void main(String[] args)
{
Scanner Read = new Scanner(System.in);
try{
// System.out.println("What is your number?");
System.out.println("please enter an equation");
int n=Read.nextInt();
char operands;
operands=Read.next().charAt(0); //reading up till the next space and pulling the first character it read
// System.out.println("What is your operand?");
// operands=Read.next().charAt(0);
//
//
// System.out.println("What is a second number?");
int v=Read.nextInt();
// System.out.println("The second number you entered was "+v);
if (operands == '+')
System.out.println(n+"+"+v+"="+addition(n, v));
if (operands == '-')
System.out.println(n+"-"+v+"="+subtraction(n, v));
if (operands == '*')
System.out.println(n+"*"+v+"="+multiply(n, v));
if (operands == '/')
System.out.println(n+"/"+v+"="+division(n, v));
}
catch(InputMismatchException ex)
{
System.out.println("Bad input, please correct your operard."); //
}
}
public static int addition(int n, int v){
return n+v;
}
public static int subtraction(int n, int v){
return n-v;
}
public static int multiply(int n, int v){
return n * v;
}
public static int division(int n, int v){
return n/v;
}
}
如果你想要>你可以复制并发布到eclipse中。<感谢
PS:如果你觉得你有这个标题和问题的似曾相识,你不是,我不小心在上一篇文章的底部发布了错误的代码,对不起那些家伙,但这里有正确的代码PS2:好的,底部的用户使用他的代码版本来回答问题,但还有另一个问题。
我有一个问题,是否有办法显示输入。我试图显示4x作为错误以及你修改的打印输出,但它没有出来
System.out.println("输入错误,请更正您的第一个操作数。" + n);
我刚试过但是它要我声明n = 0所以当我这样做的时候,然后:"输入错误,请更正你的第一个操作数。"它把零而不是4x我怎么能解决这个问题,一个字符串转换?拜托,谢谢你
答案 0 :(得分:0)
有更好的方法来解析输入和检查有效性。但是使用您的代码作为基础,这是您可以做的工作。为每个整数添加一个额外的try / catch子句。
date_default_timezone_set('Asia/Kolkata');
require_once("dompdf/dompdf_config.inc.php");
$tym = date('g:i s');
$filename = 'FAA-8130_3_'.$tym;
ob_start();
require_once 'form.php';
$html = ob_get_clean();
ob_end_clean();
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream($filename. ".pdf", array("Attachment" => 0));
}