评估表达式程序需要用户输入的麻烦

时间:2019-02-18 20:30:42

标签: java arrays stack main args

已经编写了很多这样的代码,但是我添加的代码包括^和%。它是使用堆栈按正确顺序求值表达式的代码。我遇到的麻烦是主要方法,并添加了一种方法来接受用户输入并打印出问题的结果。我只是在代码的那一部分

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

用法:java EvaluateExpression“表达式”

2 个答案:

答案 0 :(得分:0)

这仅表示args.length与1不同。

答案 1 :(得分:0)

您的程序正在从标准输入中读取。不需要检查args计数。 Args是指示程序输入的程序参数。喜欢 ls *.txt 要么 java -cp . EvaluateExpression <myvalue>

希望这会有所帮助。