JAVA读取字符串中某个变量值,并进行简单比较

Posted 我是疯子杨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;   // 获取变量名:变量1
11         if(matcherFetchParams.find()) {
12             paramName = matcherFetchParams.group(1);
13         }
14         System.out.println("paramName: " + paramName); // paramName: 变量1
15         
16         String ruleRegex = matchString.replaceAll("(变量[0-9]{1,})", "(\\\\S*)");
17         Pattern pattern = Pattern.compile(ruleRegex);
18         Matcher matcher = pattern.matcher(inputstr);
19         String paramValue = null;   // 获取变量值:23
20         if(matcher.find()) {
21             paramValue = matcher.group(1);
22             paramValue = paramValue.replace(",", "");
23         }
24         System.out.println("paramValue: " + paramValue); // paramValue: 23
25         
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读取字符串中某个变量值,并进行简单比较的主要内容,如果未能解决你的问题,请参考以下文章

Java实现JSON{参数}占位符名称替换指定的多个变量值

read---读取变量值

在js中怎么判断两个字符串相等?

backup

js中怎么判断两个字符串是不是相等

关于php读取js的变量值问题