Java: Tokenizing Delimiters

Purpose

When tokenizing a string, the delimiters are ignored by default. However, it may be useful to get them returned as tokens too. Each delimiter will be returned as a one-character string.

Constructor

Specify that you want the delimiters returned by specifying true in the third parameter of the constructor.
StringTokenizer st = new StringTokenizer(s, d, true);
Creates a StringTokenizer for the String s using delimiters from the String d

Example: Tokenizing an expression

Here is an example method that tokenizes a string, making all delimiters except whitespace into tokens.
 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

Example Applet

The following applet uses the above method. TokenizeExpr.java. Unfortunately, most browsers don't run Java 2 applets correctly yet, so it's doubtful that you can see it working here. You may have to compile and run it yourself.