?? 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 "輸入的算術(shù)式有錯誤!" ;
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 ) ;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -