📄 exprparser.java
字号:
package cal;
import java.lang.* ;
import cal.* ;
public class ExprParser {
String answer ;
public ExprParser() {
this.answer=null ;
}
protected double calculate( double firstElement, String operator, double secondElement )
throws Exception {
if( "+".equals( operator ) )
return firstElement+secondElement ;
else if( "-".equals( operator ) )
return firstElement-secondElement ;
else if( "*".equals( operator ) )
return firstElement*secondElement ;
else if( "/".equals( operator ) ) {
if( secondElement>-1E-5 && secondElement<1E-5 )
throw new Exception() ;
else
return firstElement/secondElement ;
}
else
return firstElement ;
}
public String getAnswer() {
if( this.answer==null )
return "输入的算术式有错误!" ;
else
return this.answer ;
}
public void setTokensList( ExprTokensList tokenList ) {
double result=0.0 ;
Object element=tokenList.getElement() ;
if( element!=null ) {
if( element instanceof Double )
result=((Double)element).doubleValue() ;
else
return ;
while( ( element=tokenList.getElement() )!=null ) {
String opr="" ;
if( element instanceof String )
opr=(String)element ;
else
return ;
if( ( element=tokenList.getElement() )!=null && element instanceof Double )
try {
result=this.calculate( result, opr, ((Double)element).doubleValue() ) ;
}
catch( Exception ex ) {
return ;
}
else
return ;
}
}
this.answer=String.valueOf( result ) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -