/*
* Copyright (c) 1994, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package java.util;
import java.lang.*;
/**
* The string tokenizer class allows an application to break a
* string into tokens. The tokenization method is much simpler than
* the one used by the {@code StreamTokenizer} class. The
* {@code StringTokenizer} methods do not distinguish among
* identifiers, numbers, and quoted strings, nor do they recognize
* and skip comments.
*
* The set of delimiters (the characters that separate tokens) may
* be specified either at creation time or on a per-token basis.
*
* An instance of {@code StringTokenizer} behaves in one of two
* ways, depending on whether it was created with the
* {@code returnDelims} flag having the value {@code true}
* or {@code false}:
*
*
If the flag is {@code false}, delimiter characters serve to
* separate tokens. A token is a maximal sequence of consecutive
* characters that are not delimiters.
*
If the flag is {@code true}, delimiter characters are themselves
* considered to be tokens. A token is thus either one delimiter
* character, or a maximal sequence of consecutive characters that are
* not delimiters.
*
* A {@code StringTokenizer} object internally maintains a current
* position within the string to be tokenized. Some operations advance this
* current position past the characters processed.
* A token is returned by taking a substring of the string that was used to
* create the {@code StringTokenizer} object.
*
* The following is one example of the use of the tokenizer. The code:
*
* StringTokenizer st = new StringTokenizer("this is a test");
* while (st.hasMoreTokens()) {
* System.out.println(st.nextToken());
* }
*
*
* prints the following output:
*
* this
* is
* a
* test
*
*
*
* {@code StringTokenizer} is a legacy class that is retained for
* compatibility reasons although its use is discouraged in new code. It is
* recommended that anyone seeking this functionality use the {@code split}
* method of {@code String} or the java.util.regex package instead.
*
* The following example illustrates how the {@code String.split}
* method can be used to break up a string into its basic tokens:
*
* String[] result = "this is a test".split("\\s");
* for (int x=0; x<result.length; x++)
* System.out.println(result[x]);
*
*
* prints the following output:
*
* this
* is
* a
* test
*
*
* @see java.io.StreamTokenizer
* @since 1.0
*/
public class StringTokenizer implements Enumeration