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