import java.util.*;
	/**
	 * A specialized version of the StringTokenizer that ignores the
	 * case of the delimiters.That is,if either 'a'or 'A'is
	 * made a delimiter then both 'a'and 'A'will be treated as
	 * delimiters.
	 *
	 * @author Prof.David Bernstein,James Madison University
	 * @version 1.0
	 */
	public class CaseInsensitiveStringTokenizer extends StringTokenizer
	{

	/**
	 *Explicit Value Constructor
	 *
	 * @param str The String to tokenize
	 *
	 * @see java.util.StringTokenizer#StringTokenizer(java.lang.String)
	 */
	public CaseInsensitiveStringTokenizer(String str)
   {
	  super(str);
	}
	
	/**
	 * Explicit Value Constructor
	 *
	 * @param str	The String to tokenize
	 *	@param delim	The set of delimiters to use
	 *
	 * @see java.util.StringTokenizer#StringTokenizer(jav.lang.String,java.lang
	 */
	 
	 public CaseInsensitiveStringTokenizer(String str, String delim)
	 {
	    this (str, delim, false);
	 }
	 
	 /**
	  * Explicit Value Constructor
 	  *
 	  * @param str					The String to tokenize
 	  * @param delim				The set of delimiters to use
	  * @param returnDelims  	true to return delimiters as tokens.
	  *
	  * @see java.util.StringTokenizer#StringTokenizer(jav.lang.String,java.lang
	  */														
   
	  public CaseInsensitiveStringTokenizer(String str, String delim, boolean returnDelims)
	  {
	    // while this is messy, it must be done this way
		 // because the call to super () must be the first statement in the method
		 
		 super(str, delim.toLowerCase() + delim.toUpperCase(), returnDelims);
	  }
		
} // end class CaseInsensitiveStringTokenizer extends StringTokenizer		