评估表达式程序在处理用户输入时遇到问题

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


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 "表达式"


慕婉清6462132
浏览 64回答 2
2回答

Helenr

它只是意味着 args.length 不同于 1。

森栏

您的程序正在从标准输入读取。不需要检查 args 计数。Args 是直接输入程序的程序参数。喜欢&nbsp;ls *.txt&nbsp;或&nbsp;java -cp . EvaluateExpression <myvalue>希望这可以帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java