A good answer might be:

C:\> java TokenTester
Enter a string: val = 12+8
val
12
8

Returning Delimiters

You probably regard the "=" and the "+" symbols as important, so they should be regarded as tokens. But "+" also needs to work as a delimiter so that "12+8" is broken into the tokens "12", "+" and "8". This is done by using true as the third parameter in the constructor: Now individual delimiters (as well as tokens) are returned by nextToken().

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("Enter a string:");
    String data = stdin.readLine();   
    
    StringTokenizer tok = 
      new StringTokenizer( data, " =+-", true ); // note the space before =

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

QUESTION 17:

Now what is the output for the following:

C:\> java TokenTester
Enter a string: val = 12+8