
四则运算的方法:从左到右,先乘除后加减。所以可以使用for循环遍历先找出乘除符号计算,然后再找加减符号计算。
首先把24点字符串处理成列表。如:“9+3+3x4” 处理成[9,+,3,+,3,x,4].
之后遍历列表先找出乘除号计算–>[9,+,3,+,12];
然后找出加减号计算–>[12,+,12]–>[24]
最后列表中就剩下最终的计算结果了。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
for(int j=0;j strs=new ArrayList<>();
String f="";
for(int i=0;i n,int v) {
int con = 0;
int j=0;
con=Integer.valueOf(n.get(0));
if(v==0) {
for(int i=0;ii+1) {
j=i+1;
}
}
if(n.get(j).equals("x")){
n.set(i, String.valueOf(con*Integer.valueOf(n.get(i+2))));
n.remove(i+1);
n.remove(i+1);
return number(n,0);
}else if(n.get(j).equals("/")){
n.set(i, String.valueOf(con/Integer.valueOf(n.get(i+2))));
n.remove(i+1);
n.remove(i+1);
return number(n,0);
}
}
}
for(int i=0;ii+1) {
j=i+1;
}
}
if(n.get(j).equals("+")){
n.set(i, String.valueOf(con+Integer.valueOf(n.get(i+2))));
n.remove(i+1);
n.remove(i+1);
return number(n,1);
}else if(n.get(j).equals("-")){
n.set(i, String.valueOf(con-Integer.valueOf(n.get(i+2))));
n.remove(i+1);
n.remove(i+1);
return number(n,1);
}
}
return con;
}
}