exprtokenslist.java

来自「《JSP时尚编程百例》一例源代码81-100」· Java 代码 · 共 67 行

JAVA
67
字号

  package cal ;
  
  import java.lang.* ;
  import java.util.* ;
  
  public class ExprTokensList {
    Vector tokensList ;
    Vector improperTokens ;

    public ExprTokensList() {
      tokensList=new Vector() ;
      improperTokens=new Vector() ;
    }

    public String getErrorMessage() {
      if( improperTokens.size()==0 )
        return "没有发现任何错误!" ;
      else {
        String msg="输入有错!: " ;
        for( Enumeration e=improperTokens.elements() ; e.hasMoreElements() ; )
          msg+=( "\""+(String)e.nextElement()+"\" " ) ;
        return  msg ;
      }
    }
    
    public Object getElement() {
      if( tokensList.size()==0 )
        return null ;
      else {
        Object element=tokensList.firstElement() ;
        tokensList.removeElementAt( 0 ) ;
        return element ;
      }	
    }

    public boolean isParsingOk() {
      if( improperTokens.size()==0 )
        return true ;
      else
        return false ;	
    }

    public void setExpression( String expr ) {
      StringTokenizer tokenizer=new StringTokenizer( expr, " +-*/", true ) ;
      while( tokenizer.hasMoreTokens() ) {
      	String token=tokenizer.nextToken() ;

      	if( token.equals( " " ) )
      	  continue ;

      	if( token.equals( "+" ) || token.equals( "-" ) || token.equals( "*" ) || token.equals( "/" ) )
      	  tokensList.addElement( token ) ;
      	else {
      	  try {
      	    tokensList.addElement( new Double( token ) ) ;
      	  }
      	  catch( NumberFormatException ex ) {
      	    improperTokens.addElement( token ) ;
      	  }
      	}
      }
    }
  } 
    
    
  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?