本帖最后由 u011402153 于 2013-09-17 17:30:14 编辑

解决方案 »

  1.   

    意思就是把数组中得String元素 换成 Map集合中得Value   但是数组中有加减乘除之类得  该如何判断
      

  2.   

    好吧 我重新说下  我现在有一个字符串如:"员工数量,*,工作时间,"我把这个转换成了一个数组
    item1["员工数量","*","工作时间"];
    现在我得到了一个Map集合  map:key(员工数量)Value("10")
    我得问题就是把List中得元素 和 Map中得Key进行比较 然后用Map得Value替换掉  随后得到一个可以进行
    计算得算式
      

  3.   

    还有个疑问就是我数组转String时顺序会不会出错
      

  4.   

    还有个疑问就是我数组转String时顺序会不会出错
    不对是String转数组得时候位置会不会乱
      

  5.   

    写了一段,仅供参考。        StringBuilder builder = new StringBuilder();
            Map<String, Integer> map = new HashMap<String, Integer>();
            map.put("a", 2);
            map.put("b", 3);
            String[] items = new String[]{"a", "-", "b"};
            for (String item : items) {
                item = item.trim();
                if (item.length() == 1 && "+-*/()".indexOf(item) != -1) {
                    builder.append(item);
                } else if (map.containsKey(item)) {
                    builder.append(map.get(item));
                } else {
                    builder = new StringBuilder();
                    System.out.println(item + "没有对应的值");
                    break;
                }
            }
            String exp = builder.toString();
            if (!exp.isEmpty()) {
                ScriptEngineManager manager = new ScriptEngineManager();
                ScriptEngine engine = manager.getEngineByName("JavaScript");
                try {
                    System.out.println((int) Float.parseFloat(engine.eval("eval ('" + exp + "')").toString()));
                } catch (ScriptException ex) {
                    System.err.println("错误的表达式:" + exp);
                }
            }