# Java: TokenizeExpr.java

## Sourcecode for TokenizeExpr.java

    //Tokenize an expression.  Example of delimiters as tokens.

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.util.*;

    public class TokenizeExpr extends JApplet {
       //----------------------------------------- field variables
       JTextField expr;        // expression text
       JTextField delimiters;  // delimiters
       JTextArea tokenDisplay; // show the tokens

       //-------------------------------------------------- init()
       public void init() {
          //--- Define listener used to do tokenization
          ActionListener tok = new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                  tokenDisplay.setText(tokenizeEx(expr.getText(),
                                                  delimiters.getText()));
              }
          };

          //--- Initialize all the components
          expr = new JTextField(20);       // input expression
          expr.addActionListener(tok);

          delimiters = new JTextField(20); // show/set delimiters
          delimiters.setText(" +-*/()");
          delimiters.addActionListener(tok);

          tokenDisplay = new JTextArea(20, 20); // display tokens
          tokenDisplay.setEditable(false);

          //--- Arrange all components on panel
          JPanel content = new JPanel();
          content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
          content.setBackground(new Color(0x8080FF));
          content.add(new JLabel("Expression"));
          content.add(expr);
          content.add(new JLabel("Delimiters"));
          content.add(delimiters);
          content.add(new JLabel("Tokens"));
          content.add(tokenDisplay);
          this.setContentPane(content);
       }//end init

       //-------------------------------------------------- tokenizeEx()
       private String tokenizeEx(String expression, String delims) {
          StringBuffer sb = new StringBuffer(100);
          StringTokenizer scanner;
          scanner = new StringTokenizer(expression, delims, true);

          while (scanner.hasMoreTokens()) {
             String aWord = scanner.nextToken();
             if (!Character.isWhitespace(aWord.charAt(0))) {
                sb.append(aWord + "\n");
             }
          }
          return sb.toString();
       }//end tokenizeEx

    }//endclass