标签:integer start print tar efi public 分割 art err
表达式步骤
public static void main(String[] args) { //将一整个语句直接定义了字符串 String str = "(\"Hello \" + \"World!!!\").substring(6, 9)"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算 EvaluationContext context = new StandardEvaluationContext() ; //4通过表达式进行结果计算 System.out.println(exp.getValue()); System.out.println(str); }
使用变量
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "(\"Hello \" + \"World!!!\").substring(#start, #end)"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; context.setVariable("start", 6); context.setVariable("end", 9); //4通过表达式进行结果计算 System.out.println(exp.getValue(context)); }
简单表达式
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "1 + 2"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; //4通过表达式进行结果计算 System.out.println(exp.getValue(context)); }
自定义分割符
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "#[1 + 2]"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 边界匹配 Expression exp = parser.parseExpression(str,new ParserContext() { @Override public boolean isTemplate() { return true; } @Override public String getExpressionSuffix() { return "]"; } @Override public String getExpressionPrefix() { return "#["; } }); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; context.setVariable("start", 6); context.setVariable("end", 9); //4通过表达式进行结果计算 System.out.println(exp.getValue(context)); }
基本表达式
public static void main(String[] args) { //将一整个语句直接定义了字符串 ,其中对字符串的开始索引与结束索引使用替代变量 String str = "null"; //1定义一个专属的表达式解析工具 ExpressionParser parser = new SpelExpressionParser() ; //2定义一个表达式处理类 Expression exp = parser.parseExpression(str); //3进行最终的表达式计算中进行替代棉量内容的设置 EvaluationContext context = new StandardEvaluationContext() ; //4通过表达式进行结果计算 Object num = exp.getValue(context ,Object.class); System.out.println(num); }
+
四则运算
^ 幂运算 2^3
% MOD
/ DIV
> GT
>= GE
== EQ
!= NE
< LT
<= LE
! NOT
AND
OR
正则 如 "‘123‘ matches ‘\\d{3}‘"
三木运算 null==null ?‘Hello‘ : ‘world‘
简单三目运算 true ? : false
null ? : false
class表达式
// String str = "T(String)"; //Class // String str = "T(Integer).MAX_VALUE"; //静态属性 // String str = "T(Integer).parseInt(‘123‘)"; //静态方法 // String str = "new java.util.Date()"; //实例化对象 // String str = "‘hello‘ instanceof T(String)"; //instanceof
标签:integer start print tar efi public 分割 art err
原文地址:https://www.cnblogs.com/blog-747674599/p/9986316.html