我正在尝试编写一个程序,它将采用表达式并解决它。例如,如果给我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;
}
答案 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"]
从那里,根据需要操作列表来解决问题。