表达式的化简
2017-10-24 01:29
106 查看
package util; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; public class Test { public static void main(String[] args) throws IOException { Properties props = new OrderedProperties(); FileInputStream fileInputStream = new FileInputStream("input.properties"); props.load(fileInputStream); // 用于存储所有节点:结束节点为GX=即:将值使用等号分割后length=1 Map<String, String> map = new HashMap<String, String>(); for (Object key : props.keySet()) { map.put(key.toString(), props.getProperty(key.toString())); } for (Object key : props.keySet()) { if (props.getProperty(key.toString()).split("=").length > 1) { String newstr = th(map, props.getProperty(key.toString()).split("=")[1]); System.out.println(newstr); } } } public static String th(Map<String, String> map, String dd) { String[] arrayStr = dd.split("\\+|\\(|\\)|\\*|/|\\-"); // 去除数组中为空的字符串 List<String> tmp = new ArrayList<String>(); for (String str : arrayStr) { if (str != null && str.startsWith("G")) { tmp.add(str); } } arrayStr = tmp.toArray(new String[0]); for (String str : arrayStr) { String newstr = str; if (map.get(newstr).split("=").length > 1) { dd = dd.replaceAll(newstr, "(" + map.get(newstr).split("=")[1] + ")"); dd = th(map, dd); } } return dd; } }
package util; import java.util.Collections; import java.util.Enumeration; import java.util.LinkedHashSet; import java.util.Properties; import java.util.Set; public class OrderedProperties extends Properties { /** * */ private static final long serialVersionUID = 1L; private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>(); public Enumeration<Object> keys() { return Collections.<Object> enumeration(keys); } public Object put(Object key, Object value) { keys.add(key); return super.put(key, value); } public Set<Object> keySet() { return keys; } public Set<String> stringPropertyNames() { Set<String> set = new LinkedHashSet<String>(); for (Object key : this.keys) { set.add((String) key); } return set; } }
G1:G1= G2:G2= G3:G3= G4:G4= G5:G5=G1+G3 G6:G6=G4+G5*G5-G4 G7:G7=G2+G6 G8:G8=G7+G3 G9:G9=G5+G8 G10:G10=G9+G8-G7
相关文章推荐
- Matlab化简符号表达式
- 怎么样化简表达式?
- Symbolic Toolbox 表达式化简与数值转换(ZZ)
- matlab如何化简表达式/多项式?
- Matlab常用命令之(一):符号表达式化简
- matlab化简符号表达式
- matlab符号表达式的化简常用命令函数
- 常见算法笔试题的研究2(一元多项表达式的化简)
- MySQL查询优化器--逻辑查询优化技术(六)--条件化简(表达式处理)
- Symbolic Toolbox 表达式化简与数值转换
- Matlab中指数函数表达式的化简
- 输入一个Email地址,然后使用正则表达式验证该Email地址是否正确。
- Python_4表达式
- javascript下利用数组缓存正则表达式的实现方法
- [易学C#]C#3.0语言新特性之Lambda表达式(转)
- 常用的正则表达式
- ZOJ 1958||POJ 2269 Friends(表达式计算)
- C#中利用正则表达式实现字符串搜索
- 一个判别表达式中开、闭括号是否配对出现的算法
- 使用Quartz.NET cron-like表达式