说,用户输入以下100 + 12-1/3使用扫描仪,我得到了输入,然后将其分割为100,+,12,-,1、3现在,我要做的是按提供的顺序计算总数。112,然后是111,然后是37,因此答案是37。
这是我当前的思考过程,但现在我仍在其余的长度和运算符上停留在如何用Java实现该过程中。
仅适用于“ 1 + 1”或“ 1/1”但是我需要的是一些变量来保存前2个整数结果,然后-,*或根据表达式的其余部分添加。
Scanner numstr = new Scanner(System.in); String input = numstr.nextLine(); String [] str = input.split(" "); int sum =0; int add =0; int temp; for (int i=0;i<str.length;i++) { if (i%2 >0 && str[i].equals("+")) { sum = Integer.parseInt(str[i-1]) + Integer.parseInt(str[i+1]); //sum = add; System.out.println(sum); } temp =sum; else if (i%2 >0 && str[i].equals("-")) { sum = Integer.parseInt(str[i-1]) - Integer.parseInt(str[i+1]); //sum = temp - Integer.parseInt(str[i+1]); System.out.println(sum); } //temp = sum; else if (i%2 >0 && str[i].equals("/")) { sum = Integer.parseInt(str[i-1]) / Integer.parseInt(str[i+1]); System.out.println(sum); } else if (i%2 >0 && str[i].equals("*")) { sum = Integer.parseInt(str[i-1]) * Integer.parseInt(str[i+1]); System.out.println(sum); } else if (i%2 >0 && !str[i].equals("+")&&!str[i].equals("-")&&!str[i].equals("/")&&!str[i].equals("*")) { System.out.println("unknow operator"); } }
所以1 + 2 + 5 * 30将会:3,8,240
说一个用户输入以下100 + 12-1/3,使用扫描仪,得到该输入,然后将其分割为100,+,12,-,1,/ 3现在,我要计算的是提供的订单。 112然后111 ...
最简单的方法是读取数字,运算符和数字。然后根据运算符计算该值。