例如String[] str ={"+","-","*","/"};
         
随机从这数组里面取出其中一个字符(注:我已经做到了,这里不是重点)题目:a__b__c__d==30  下划线里面填入str里面的随机一个字符,使a b c d进行运算 如何做到??(其中a b c d是int类型)JAVA不能重载字符 悲剧!! 求详细解 谢谢 

解决方案 »

  1.   

    比如1-2×3/4
    逻辑:
    如果是+或者-直接压栈
    1压栈->后面是减号,所以-2压栈->后面是乘号,所以-2出栈,并且-2和后一个数3相乘,得到-6压栈->后面是除号,所以-6出栈,-6除以4得-1.5,-1.5压栈->结束,所有栈里面的数字作和即可。
      

  2.   

    随机取出三个运算符 分别定义为 char x,y,z;
    然后  axbycz==30;
          aybzcx==30;
          azbycx==30;
          ....
    构造方程组 你试试看行不行  这是思路哈  呵呵
      

  3.   

    拼接字符串,使之成为一个string类型的表达式,然后放到javascript引擎中计算结果。
      public static void main(String[] args) throws Exception {
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("javascript");
        Number result = (Number) engine.eval("1+2*3+4");
        System.out.println(result);
      }
      

  4.   

    http://topic.csdn.net/u/20110319/12/ac21810e-6106-454e-b913-bc668338dc0c.html
      

  5.   

    http://ethen.iteye.com/admin/blogs/1011402