提供一个思路,其实这个问题还是比较复杂的首先准备两个栈,一个存放运算数,一个存放运算符
然后再建一个运算父优先级表
先把数和符号都放在栈里面
然后弹栈,根据优先级来计算结果,然后再把临时结果push到栈里面这样递归就得到了结果
我记得数据结构的一本书里面有代码的
然后再建一个运算父优先级表
先把数和符号都放在栈里面
然后弹栈,根据优先级来计算结果,然后再把临时结果push到栈里面这样递归就得到了结果
我记得数据结构的一本书里面有代码的
解决方案 »
- 求一个大小写不敏感匹配方法(要求极端高效)
- J2SE常用英文
- 请问Enumation enum=.....在JSP中这样写为什么不行。我使用JDK5.0
- 新手请教怎么把string型的123转为int型的123?
- 能用JAVA开发带数据库的桌面程序吗?
- java路径问题??在线等
- 关于画图方面的问题
- 交友兼散分!!!
- 我是初学者,一个小问题
- 我刚学Java,用Javac编译一个例程没问题,但一用Java运行就出错:Exception in the thread "main" java.lang.NoClassDefFoundError: Welcome
- 这么简单的问题,应该很快有回复吧?刷新等待中
- 怎么禁用Applet窗口的最大化功能?在线等......
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)