解决操作

时间:2016-09-25 05:29:16

标签: java string algorithm int

我正在尝试编写一个程序,它将采用表达式并解决它。例如,如果给我5 * 5 + 2/2 - 8 + 5 * 5 - 2,我应该使用ArrayLists来回答41。为此,我必须将给定的操作转换为int。有没有办法将整个给定的字符串或int转换为一个操作?我尝试过使用Integer.parseInt(givenString),但由于“+”,“ - ”,“*”,“/”符号,我收到错误。

此外,我尝试过以下操作,但由于符号

,我收到同样的错误
Scanner kb = new Scanner(System.in);

    int k=0;

    while (k!=-1)
    {
    System.out.println ("Please enter an operation to solve or enter -1 to stop");
    k= kb.nextInt();
    System.out.println(k);
    k=0;

    }

2 个答案:

答案 0 :(得分:0)

试试吧,

try {
            System.out.println(new ScriptEngineManager().getEngineByName("js").eval("5 * 5 + 2 / 2 - 8 + 5 * 5 - 2"));
        } catch (ScriptException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

答案 1 :(得分:0)

我会尝试在没有编写代码的情况下给你一个起点,因为我想避免为你做功课。

您需要一次输入一个字符输入字符串,并确定每个字符是数字(或数字的一部分)还是操作(+-*/)。您应该为您的问题形成的列表应该是这样的:

["5", "*", "5", "+", "2", "/", "2", "-", "8", "+", "5", "*", "5", "-", "2"]

从那里,根据需要操作列表来解决问题。