首页 > 代码库 > JAVA读取字符串中某个变量值,并进行简单比较
JAVA读取字符串中某个变量值,并进行简单比较
开发中有时会遇到需要截取一个字符串中某个变量后面带的值,并对这个值做简单运算的情况,比如“tom, age 23, come fron us”, 这里想判断年龄是否大于30岁,实现如下:
1 String inputstr = "tom, age 23, come fron us"; 2 String matchString = "age 变量1"; // 需要截取的变量正则表达式 3 String ruleString = "变量1 > 30"; // 比较的公式 4 5 // 1、使用正则表达式截取年龄值 6 String paramRegex = "(变量[0-9]{1,})"; 7 Pattern patternFetchParams = Pattern.compile(paramRegex); 8 Matcher matcherFetchParams = patternFetchParams.matcher(matchString); 9 10 String paramName = null; // 获取变量名:变量111 if(matcherFetchParams.find()) {12 paramName = matcherFetchParams.group(1);13 }14 System.out.println("paramName: " + paramName); // paramName: 变量115 16 String ruleRegex = matchString.replaceAll("(变量[0-9]{1,})", "(\\\\S*)");17 Pattern pattern = Pattern.compile(ruleRegex);18 Matcher matcher = pattern.matcher(inputstr);19 String paramValue = http://www.mamicode.com/null; // 获取变量值:2320 if(matcher.find()) {21 paramValue = http://www.mamicode.com/matcher.group(1);22 paramValue = http://www.mamicode.com/paramValue.replace(",", "");23 }24 System.out.println("paramValue: " + paramValue); // paramValue: 2325 26 // 1、使用javascript引擎判断是否满足公式27 ScriptEngineManager manager = new ScriptEngineManager();28 ScriptEngine engine = manager.getEngineByName("javascript");29 engine.put(paramName, paramValue);30 31 boolean result = (Boolean) engine.eval(ruleString);32 System.out.println("result: " + result); // result: false
JAVA读取字符串中某个变量值,并进行简单比较
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。