表达式的化简

来源:互联网 发布:软件编程培训机构 编辑:程序博客网 时间:2024/05/23 01:57
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=1Map<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 longserialVersionUID= 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+G3G6:G6=G4+G5*G5-G4G7:G7=G2+G6G8:G8=G7+G3G9:G9=G5+G8G10:G10=G9+G8-G7


原创粉丝点击