⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exprparser.java

📁 《JSP时尚编程百例》一例源代码81-100
💻 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 + -