-
大小: 2KB文件類型: .java金幣: 1下載: 0 次發布日期: 2021-05-10
- 語言: Java
- 標簽:
資源簡介
java正則實現解析算術表達式 (僅限+-*/和括號)
代碼片段和文件信息
import?java.util.*;
import?java.util.regex.*;
public?class?expressionParser?
{
//解析括號...
public?static?String??parseCurves(String?expression){
//構造matcher
String?regex=“\\([^\\(\\)]+\\)“;//匹配()
Pattern?pattern=Pattern.compile(regex);
Matcher?matcher=pattern.matcher(expression);
String?finalRes=expression;
while(matcher.find()){
String group=matcher.group();
String??result=thenCalculate(priorCalculate(group.substring(1group.length()-1)));
finalRes=matcher.replaceFirst(result);
matcher.reset(finalRes);
}
return?finalRes;
}
public?static?String?priorCalculate(String?expression){
//單一運算符的計算,先計算*/
String??m_dOperate=“([^\\+\\-\\*/]+)([\\*/])([^\\+\\-\\*/]+)“;
Pattern?pattern1=Pattern.compile(m_dOperate);
Matcher?matcher1=pattern1.matcher(expression);
String?finalExp=expression;
while(matcher1.find()){
double?d1=Double.parseDouble(matcher1.group(1).trim());
double?d2=Double.parseDouble(matcher1.group(3).trim());
String?operator=matcher1.group(2);
評論
共有 條評論