我正在尝试使用 制作计算器(仅限代码)StringTokenizer
,但我迷路了。我必须使计算器能够进行简单的数学运算(+-*)和其他一些不太基本的运算(log、sin、tan、exponential)。这段代码是一个基本数学的例子——我想先做基础,然后使用方法添加其他函数。
但是,我不知道如何进行操作,我在想也许开关可以完成这项工作,但是使用 BEMDAS 会变得复杂。上面的代码只是把操作数放在一个char数组里,把数字放在一个double数组里,然后就不知道怎么继续了。如果有人可以解释我如何继续这一点,或指导我,我将不胜感激。
import java.util.StringTokenizer;
import java.io.*;
public class Calculator {
public static void main (String[] args) {
int i=0;
int j=0;
int n=0;
int o=0;
double num []= new double [100];
char op[]=new char [100];
String ops[]=new String [100];
String x = "5*10+15/12";
StringTokenizer st = new StringTokenizer(x, "*/-+", true);
while(st.hasMoreTokens()){
ops[j] =st.nextToken();
j++;
}
for(i=0; i<j;i++){
if(i%2==0){
num[n]=Double.parseDouble(ops[i]);
n++;
}
else{
op[o]=ops[i].charAt(0);
o++;
}
}
for(i=0; i<n;i++)
System.out.println(num[i]);
for(i=0; i<o;i++)
System.out.println(op[i]);
}
}