home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- public class StringTokenizer implements Enumeration {
- private int currentPosition;
- private int newPosition;
- private int maxPosition;
- private String str;
- private String delimiters;
- private boolean retDelims;
- private boolean delimsChanged;
- private char maxDelimChar;
-
- private void setMaxDelimChar() {
- if (this.delimiters == null) {
- this.maxDelimChar = 0;
- } else {
- char var1 = 0;
-
- for(int var2 = 0; var2 < this.delimiters.length(); ++var2) {
- char var3 = this.delimiters.charAt(var2);
- if (var1 < var3) {
- var1 = var3;
- }
- }
-
- this.maxDelimChar = var1;
- }
- }
-
- public StringTokenizer(String var1, String var2, boolean var3) {
- this.currentPosition = 0;
- this.newPosition = -1;
- this.delimsChanged = false;
- this.str = var1;
- this.maxPosition = var1.length();
- this.delimiters = var2;
- this.retDelims = var3;
- this.setMaxDelimChar();
- }
-
- public StringTokenizer(String var1, String var2) {
- this(var1, var2, false);
- }
-
- public StringTokenizer(String var1) {
- this(var1, " \t\n\r\f", false);
- }
-
- private int skipDelimiters(int var1) {
- if (this.delimiters == null) {
- throw new NullPointerException();
- } else {
- int var2;
- for(var2 = var1; !this.retDelims && var2 < this.maxPosition; ++var2) {
- char var3 = this.str.charAt(var2);
- if (var3 > this.maxDelimChar || this.delimiters.indexOf(var3) < 0) {
- break;
- }
- }
-
- return var2;
- }
- }
-
- private int scanToken(int var1) {
- int var2;
- for(var2 = var1; var2 < this.maxPosition; ++var2) {
- char var3 = this.str.charAt(var2);
- if (var3 <= this.maxDelimChar && this.delimiters.indexOf(var3) >= 0) {
- break;
- }
- }
-
- if (this.retDelims && var1 == var2) {
- char var4 = this.str.charAt(var2);
- if (var4 <= this.maxDelimChar && this.delimiters.indexOf(var4) >= 0) {
- ++var2;
- }
- }
-
- return var2;
- }
-
- public boolean hasMoreTokens() {
- this.newPosition = this.skipDelimiters(this.currentPosition);
- return this.newPosition < this.maxPosition;
- }
-
- public String nextToken() {
- this.currentPosition = this.newPosition >= 0 && !this.delimsChanged ? this.newPosition : this.skipDelimiters(this.currentPosition);
- this.delimsChanged = false;
- this.newPosition = -1;
- if (this.currentPosition >= this.maxPosition) {
- throw new NoSuchElementException();
- } else {
- int var1 = this.currentPosition;
- this.currentPosition = this.scanToken(this.currentPosition);
- return this.str.substring(var1, this.currentPosition);
- }
- }
-
- public String nextToken(String var1) {
- this.delimiters = var1;
- this.delimsChanged = true;
- this.setMaxDelimChar();
- return this.nextToken();
- }
-
- public boolean hasMoreElements() {
- return this.hasMoreTokens();
- }
-
- public Object nextElement() {
- return this.nextToken();
- }
-
- public int countTokens() {
- int var1 = 0;
-
- for(int var2 = this.currentPosition; var2 < this.maxPosition; ++var1) {
- var2 = this.skipDelimiters(var2);
- if (var2 >= this.maxPosition) {
- break;
- }
-
- var2 = this.scanToken(var2);
- }
-
- return var1;
- }
- }
-