提供一个思路,其实这个问题还是比较复杂的首先准备两个栈,一个存放运算数,一个存放运算符
然后再建一个运算父优先级表
先把数和符号都放在栈里面
然后弹栈,根据优先级来计算结果,然后再把临时结果push到栈里面这样递归就得到了结果
我记得数据结构的一本书里面有代码的
然后再建一个运算父优先级表
先把数和符号都放在栈里面
然后弹栈,根据优先级来计算结果,然后再把临时结果push到栈里面这样递归就得到了结果
我记得数据结构的一本书里面有代码的
int i=0;
for (i = 0 ; i < 6 ; i++)
b[i] = 0x0;
String stra = "1+3/4";
b[] = stra.getBytes();
i = 0;
int resutl = 0
while (i<5)
resutl+= b[i++]& 0xff;
b[i] = 0x0;
int i=0;
String stra = "1+3/4";
byte b[] = stra.getBytes();
i = 0;
int resutl = 0;
while (i<5)
resutl+= b[i++]& 0xff;
String stra = "1+3/4";
char[]chara = stra.toCharArray();
char [] stack = new char[chara.length];
int []result = new int[chara.length];
//初始化result 为全0
int j=0;
int k=0;
//进行乘除操作
while (i<chara.length) {
if (chara [i]='+'||chara [i]='-'||chara [i]='0'...||chara [i]=='9') {
stack [j]=chara [j]
j++;
}
else
if (chara [i]='*') {
result [k] = stack [j] *(int)char[i]
k++;
} else if (chara [i]='/'){
result [k] = stack [j] *(int)char[i]
k++;
}
}
//在进行加减操作
{
public static void main (String [] args)
{
String str = "1+3/4";
System.out.println(str.valueOf(1+3/4));
}
}
System.out.print(i);
这样不行吗?不要砸我!
System.out.print(i);
这样不行吗?不要砸我!
=========================
楼主说的字符串,哈哈。
大数据类型计算使用方法String expr="(1 -3/4 )*100";
StrExpression se = new StrExpression();
System.out.println(se.getValue(expr)