提供一个思路,其实这个问题还是比较复杂的首先准备两个栈,一个存放运算数,一个存放运算符
然后再建一个运算父优先级表
先把数和符号都放在栈里面
然后弹栈,根据优先级来计算结果,然后再把临时结果push到栈里面这样递归就得到了结果
我记得数据结构的一本书里面有代码的

解决方案 »

  1.   

    byte b[] = new byte[5];
    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;
      

  2.   

    for (i = 0 ; i < 5 ; i++)
      b[i] = 0x0;
      

  3.   

    修改了一下,并调试通过:
    int i=0;
    String stra = "1+3/4";
    byte b[] =  stra.getBytes();
    i = 0;
    int resutl = 0;
    while (i<5)
     resutl+= b[i++]& 0xff;
      

  4.   

    1  +  3 / 4 的ascii码分别为49, 43, 51, 47, 52,加起来就是242
      

  5.   

    int i=0;
    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++;
    }
                      }
    //在进行加减操作
      

  6.   

    有点乱,我想char[]chara = stra.toCharArray();之后,然后把arraylist.append(chara[i]);然后先循环做乘除操作,做完之后把arraylist的被乘除数,乘除数,操作符清掉,把结果写到原来的被除数位置.再循环一次arraylist做加减操作
      

  7.   

    public class testInt
    {
    public static void main (String [] args)
    {
    String str = "1+3/4";
    System.out.println(str.valueOf(1+3/4));
    }
    }
      

  8.   

    找一本数据结构的书来看啊,大多数的数据结构书都会讲这个表达式计算的的算法,要先把表达式转换成后缀表达式,然后用栈进行操作,自己可以找一本看看,或者用google搜一下,csdn上也好像有文章,不要老想着一有问题就问别人。
      

  9.   

    int i=1+3/4;
    System.out.print(i);
    这样不行吗?不要砸我!
      

  10.   

    对啊,数据结构的书上有的,或者使用象js中eval之类的函数
      

  11.   

    int i=1+3/4;
    System.out.print(i);
    这样不行吗?不要砸我!
    =========================
    楼主说的字符串,哈哈。
      

  12.   

    将数值和运算符分开放,然后你把这个显示成字符的时候就连接起来就是了,要计算就可以直接用这些计算,比如1+3/4,其中就可以a[0]=1 a[1]=3 a[2]=4,b[0]="+",b[1]="/",然后显示就是连接,要运算就可以用一个switch来完成.
      

  13.   

    http://www.cn-java.com/target/news.php?news_id=3174
      

  14.   

    http://www-128.ibm.com/developerworks/cn/java/l-expression/?ca=dwcn-newsletter-java
      

  15.   

    以前用vb做过(包含+,-,*,/,sin,cos,(),^,还可以支持负数运算)。现在想转成java,但编了一半,实在懒得弄下去了,太复杂了。
      

  16.   

    toCharArray() 和 append() 就可以,不懂查jdk doc就行了
      

  17.   

    这个可以,外国人做的,但只能进行整数运算http://my.nbip.net/homepage/zhouB403/MyCode/Evaluator.zip
      

  18.   

    下我的这个用吧!http://www.jspx.net/jar/jspx_expression.jar支持符号 + - * / ^ sin cos sin tan sqrt log ln exp pin li
    大数据类型计算使用方法String expr="(1 -3/4 )*100";
    StrExpression se = new StrExpression();
    System.out.println(se.getValue(expr)