Eine gute Antwort wäre:

C:\daten\javaNotes> java TokenTester
Geben Sie einen String ein: wert = 12+8
wert
12
8

Begrenzungszeichen zurückgeben

Sie betrachten vermutlich das "=" und "+" Zeichen als wichtig, also sollten sie als Token angesehen werden. Aber "+" muss ebenfalls als Begrenzer funktionieren, so dass "12+8" in die Token "12", "+" und "8" gesplittet wird. Das kann durch die Verwendung von true als dritten Parameter in dem Konstruktor erreicht werden: Jetzt werden die einzelnen Begrenzungszeichen (genau wie die Token) durch nextToken() zurückgegeben.

import java.io.*;
import java.util.*;

public class TokenTester
{
  public static void main ( String[] args ) throws IOException
  {
    BufferedReader stdin =
      new BufferedReader(new InputStreamReader(System.in));

    System.out.print("Geben Sie einen String ein:");
    String str = stdin.readLine();

    StringTokenizer tok =
      new StringTokenizer( str, " =+-", true );

    while ( tok.hasMoreTokens() )
      System.out.println( tok.nextToken() );
  }
}

FRAGE 17:

Was ist jetzt die Ausgabe des folgenden:

C:\daten\javaNotes> java TokenTester
Geben Sie einen String ein: val = 12+8
Inhaltsverzeichnis