最近在项目中需要解析用户输入的数学公式,主要功能如下:
1、如果输入:(X+Y)/Z 需要解析出三个算子:X,Y,Z
2、如果输入:X1 + X2 + Y1 需要解析出三个算子:X1, X2 , Y1
3、如果输入:X1*6 + Y1 或 X1*6 + Y1 + 12需要解析出两个算子:X1,Y1
总而言之就是需要解析出变量,对于数字不用解析。
------解决方案--------------------------------------------------------
- Java code
public static void main(String[] args) { String s = "(A1 + A2 + (X*90 + Y + 100)*N1)*100+A1"; Matcher m = Pattern.compile("[a-zA-Z]+\\d*").matcher(s); Set<String> set = new HashSet<String>(); while(m.find()){ set.add(m.group()); } for(String str : set){ System.out.println(str); } }