关于Map替换得思路 本帖最后由 u011402153 于 2013-09-17 17:30:14 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 意思就是把数组中得String元素 换成 Map集合中得Value 但是数组中有加减乘除之类得 该如何判断 好吧 我重新说下 我现在有一个字符串如:"员工数量,*,工作时间,"我把这个转换成了一个数组item1["员工数量","*","工作时间"];现在我得到了一个Map集合 map:key(员工数量)Value("10")我得问题就是把List中得元素 和 Map中得Key进行比较 然后用Map得Value替换掉 随后得到一个可以进行计算得算式 还有个疑问就是我数组转String时顺序会不会出错 还有个疑问就是我数组转String时顺序会不会出错不对是String转数组得时候位置会不会乱 写了一段,仅供参考。 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); } } 新手 大家帮忙看看为什么没结果啊! java se 学习笔记分享------from the java tutorials 使用replaceAll时遇到的奇怪问题,请大家一起来讨论一下 java数据库链接和读取表操作,急!请高手指教! 求各位赐一段简单的程序 RMI配置问题,能者进. applet在windowsXP中的IE不能运行,怎么回事?我下载了htmlconvert但不会用呀? 各位大虾,帮帮我啦 有没有好的基于java的报表工具? 奔4不支持jdk1.2?大家碰到过吗? 怎么合并多个mp3文件,并不会影响各音频的正常播放 什么时候定义静态类
item1["员工数量","*","工作时间"];
现在我得到了一个Map集合 map:key(员工数量)Value("10")
我得问题就是把List中得元素 和 Map中得Key进行比较 然后用Map得Value替换掉 随后得到一个可以进行
计算得算式
不对是String转数组得时候位置会不会乱
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);
}
}