很多代码已经写好了,但是我添加的代码包括^和%。它是使用堆栈以正确的顺序计算表达式的代码。我在这方面遇到的问题是main方法,并添加了一种获取用户输入并打印出问题结果的方法。我只是包含了这部分代码
16 import java.util.Stack;
17 import java.util.Scanner;
18
19 public class EvaluateExpression {
20 public static void main(String[] args) {
21
22 Scanner input = new Scanner(System.in);
23 System.out.println("Enter the expression to be evaluated: ");
24 String expression = input.nextLine();
25
26 //Check number of arguments passed
27 if (args.length != 1) {
28 System.out.println("Usage: java EvaluateExpression \"expression\"");
29 System.exit(1);
30 }
31 try {
32 System.out.println(expression + " = " +
33 evaluateExpression(expression));
34 }
35 catch (Exception ex) {
36 ex.printStackTrace();
37 System.out.println("Wrong expression: " + expression);
38 }
39
40 }
预期结果:它正在打印要计算的表达式和结果。但是当我尝试输入一个随机表达式时,下面是我得到的结果:
输入要计算的表达式:
6+9*8-7
用法: EvaluateExpression“EvaluateExpression”
发布于 2019-02-19 04:42:11
这仅仅意味着args.length不同于1。
发布于 2019-02-19 04:43:12
您的程序正在从标准输入读取数据。不需要检查参数计数。Args是直接输入程序的程序参数。如ls *.txt
或java -cp . EvaluateExpression <myvalue>
希望这能有所帮助。
https://stackoverflow.com/questions/54754922
复制相似问题